最近的项目由于项目需要,涉及过多次在当前控制器上添加另一个控制器的View问题。这里做个笔记,为了方便,当前视图控制器记为控制器1,添加的视图记为控制器2
1.首先,因为控制器2的视图上有需要与用户交互的需求,所以一定要设置2为1的子控制器
ViewController *vc2 = [[ViewController alloc]init];
[self addChildViewController:vc2];
ps:当有多个子视图时还可能用到,子控制器的removeFromParentViewController方法
2.关于2的view的创建
因为view的创建涉及到2的viewdidload方法,所以在控制器1的方法里面不要再重新创建vc2的view,不然创建的是另一个对象。在这里只需要根据需要设计vc2的view的frame就可以了。如下:
vc2.view.frame = CGRectMake(0, 108, kScreenWidth, kScreenHeight-108);