代码实现容器视图

示例代码:

- (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视图充当一个容器视图

你可能感兴趣的:(代码实现容器视图)