示例代码:
- (void)viewDidLoad {
[super viewDidLoad];
#pragma mark -- 代码实现容器视图
//容器视图使用场景:内嵌视图控制器
JSTabBarController *tabBarController = [[JSTabBarController alloc] init];
tabBarController.view.backgroundColor = [UIColor randomColor];
// 添加内嵌控制器为子控制器 (如果只addSubView不托管控制器,就会导致响应者链条断开,监听不到响应事件)
// 此控制器的View就相当于容器
[self addChildViewController:tabBarController];
// 添加内嵌控制器的视图为子视图 让内嵌的内容显示
[self.view addSubview:tabBarController.view];
}
与使用StoryBoard区别:
StoryBoard中是添加一个ContainerView,然后在ContainerView中内嵌一个控制器
注意点:
ContainerView本身无法进行渲染,只是一个容器
当前控制器继承自UIViewController
1.实例化的tabBarController用来保证响应链条的完整,接收响应事件
2.tabBarController的view视图充当一个容器视图