最近的项目因为项目须要,涉及过屡次在当前控制器上添加另外一个控制器的View问题。这里作个笔记,为了方便,当前视图控制器记为控制器1,添加的视图记为控制器2
第一种状况:
1.首先,由于控制器2的视图上有须要与用户交互的需求,因此必定要设置2为1的子控制器设计
ViewController *vc2 = [[ViewController alloc]init];
[self addChildViewController:vc2];code
ps:当有多个子视图时还可能用到,子控制器的removeFromParentViewController方法对象
2.关于2的view的建立rem
由于view的建立涉及到2的viewdidload方法,因此在控制器1的方法里面不要再从新建立vc2的view,否则建立的是另外一个对象。在这里只须要根据须要设计vc2的view的frame就能够了。以下:it
vc2.view.frame = CGRectMake(0, 108, kScreenWidth, kScreenHeight-108);table
第二种状况:
就先别搞那么复杂先,就这样完成了一个UITableViewController的建立class
而后咱们看一下,是否有咱们想要的效果:
咱们是确实能将这个tableView添加上去了,可是出现了不能显示数据的问题。变量
咱们再看一下效果:
只有这样才能显示咱们的Cell的数据引用
因此得出一个结论:只要view在,view所在的控制器必须得在,这样才能保证view内部的数据和业务逻辑正常方法