添加5个模块(tableViewController 控制器)
1. 添加子控制器
分别自定义5个不同名称的 tableViewController
- 自定义控制器的好处是有利于, 事物分开处理, 每个控制器都各自管理自己的事情, 而不是都交给精华控制器
CDHEssenceViewController.h的来管理;如果都交给精华控制器来管理容易造成数据混乱;
#import "CDHAllViewController.h" #import "CDHVideoViewController.h" #import "CDHVoiceViewController.h" #import "CDHPictureViewController.h" #import "CDHWordViewController.h"- 自定义控制器的好处是有利于, 事物分开处理, 每个控制器都各自管理自己的事情, 而不是都交给精华控制器
注意: 一定要将控制器设置为父子控制器, 而不是强引用
- 如果父控制被 navigationController 包装了, 则添加给父控制的子控制器也有 push… 和 pop… 功能
- 父子控制器指向的是同一 navigationController ,
- 如果要添加的控制器只是用属性强引用而不是父子控制器的关系, 父控制被 navigationController 包装了
- 则仅仅是被引用的属性控制器是不具有 push… 和 pop… 功能, 属性控制器指向的 navigationController 是空.
// 初始化子控制器 - (void)setUpChildVcs{ // 添加5个 tableViewController用来展示数据 [self addChildViewController:[[CDHAllViewController alloc] init]]; [self addChildViewController:[[CDHVideoViewController alloc] init]]; [self addChildViewController:[[CDHVoiceViewController alloc] init]]; [self addChildViewController:[[CDHPictureViewController alloc] init]]; [self addChildViewController:[[CDHWordViewController alloc] init]]; }
2.添加 scrollView 到精华控制器, 并将子控制器 View 添加到 scrollView 中
- 这里先一次性全部创建 5 个控制器的 View 并添加
后面会处理成为懒加载的的模式
/** * scrollView */ - (void)setupScrollView{ // 不要去自动调整scrollView的内边距 self.automaticallyAdjustsScrollViewInsets = NO; UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.frame = self.view.bounds; scrollView.backgroundColor = [UIColor greenColor]; scrollView.showsHorizontalScrollIndicator = NO; scrollView.showsVerticalScrollIndicator = NO; [self.view addSubview:scrollView]; // 添加5个模块 for (NSInteger i = 0; i < 5; i++) { UIView *childVcView = self.childViewControllers[i].view; childVcView.frame = CGRectMake(i * scrollView.CDH_width, 0, scrollView.CDH_width, scrollView.CDH_height); // childVcView.frame = CGRectMake(i * scrollView.CDH_width, 99, scrollView.CDH_width, scrollView.CDH_height - 99 - 49); [scrollView addSubview:childVcView]; } // 其他设置 // 设置 contenSize 可滚动范围 scrollView.contentSize = CGSizeMake(5 * scrollView.CDH_width, 0); // 设置分页功能 scrollView.pagingEnabled = YES; }注意: 取消scrollView 自适应内边距
// 不要去自动调整scrollView的内边距 self.automaticallyAdjustsScrollViewInsets = NO;注意: 要隐藏 scrollView 的滚动指示条
scrollView.showsHorizontalScrollIndicator = NO; scrollView.showsVerticalScrollIndicator = NO;注意: 一定要设置 contenSize 可滚动范围
scrollView.contentSize = CGSizeMake(5 * scrollView.CDH_width, 0);注意: 开启分页效果
scrollView.pagingEnabled = YES;