示例代碼:
- (void)viewDidLoad {
[super viewDidLoad];
#pragma mark -- 代碼實現(xiàn)容器視圖
//容器視圖使用場景:內(nèi)嵌視圖控制器
JSTabBarController *tabBarController = [[JSTabBarController alloc] init];
tabBarController.view.backgroundColor = [UIColor randomColor];
// 添加內(nèi)嵌控制器為子控制器 (如果只addSubView不托管控制器,就會導(dǎo)致響應(yīng)者鏈條斷開,監(jiān)聽不到響應(yīng)事件)
// 此控制器的View就相當(dāng)于容器
[self addChildViewController:tabBarController];
// 添加內(nèi)嵌控制器的視圖為子視圖 讓內(nèi)嵌的內(nèi)容顯示
[self.view addSubview:tabBarController.view];
}
與使用StoryBoard區(qū)別:
StoryBoard中是添加一個ContainerView,然后在ContainerView中內(nèi)嵌一個控制器
注意點:
ContainerView本身無法進行渲染,只是一個容器
當(dāng)前控制器繼承自UIViewController
1.實例化的tabBarController用來保證響應(yīng)鏈條的完整,接收響應(yīng)事件
2.tabBarController的view視圖充當(dāng)一個容器視圖