示例代碼:
- (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視圖充當一個容器視圖