1、容器视图
屏幕快照 2016-11-24 下午10.01.11.png容器视图本身就是一个UIView控件,要说它的特别之处只是在于它内嵌了一个普通的控制器,这个控制器的视图大小和容器视图的大小保持一致。
2、自定义容器视图
2.1、自定义容器视图的步骤:
2.1.1、创建一个控制器对象one
2.1.2、把控制器对象one作为子控制器添加到宿主控制器中
2.1.3、把控制器one的视图添加到宿主控制器的视图中
2.2.4、实现didMoveToParentViewController方法【苹果的解释:如果有动画参与的话,必须要写这行代码!否则:动画结束后,控制器的视图无法接受用户交互!】
2.2.5、如果不实现2.1.2步骤,会造成图3中结果。响应者链断裂,当用户点击one控制器界面中的按钮的时候,按钮无法响应事件。
CLOneViewController *one = [[CLOneViewController alloc] init];
//添加到宿主控制器,成为宿主的子控制器
[self addChildViewController:one];
// 设置视图的frame
one.view.frame = self.view.bounds;
// 把one的view添加到宿主的视图中
[self.view addSubview:one.view];
// 保证会有动画效果的情况下,程序能够正常运行
[one didMoveToParentViewController:self];
// 在宿主控制器中,如果没有成为宿主的子控制器,one中的view的子控件无法响应用户事件,点击one中的view的按钮的时候会没有反应。
图2.gif
图3.gif
图4.png
网友评论