iOS 控制器嵌套
1. 现在在开发中很多时候需要在控制器中再嵌入一个控制器, 典型的就是TabBarController与NavgationController之间的嵌套.
2. 但是今天说的是在控制器上嵌入一块控制器, 比如说在 UITabViewController 上需要嵌套一个 UIWebViewController, 为啥直接嵌入UIWebViewControlller , 因为JS的环境是在基础的webViewController中, 所以直接嵌套一个 UIWebViewController 继承基类, 这样比较简单.
3. 嵌套过程只需要记住一点就好, 就是创建并添加子控制器时, 不能只把控制器的view使用addSubview: 到父的 view 上, 还要将该子控制器用 addChildViewController: 的方式添加到父控制器上, 这样就万无一失了, 否则会出现点击该控制器上 H5 的业务不能跳转的问题.
上代码:
- (CXInnerWebViewController *)innerWebVC
{
if (!_innerWebVC) {
_innerWebVC = [[CXInnerWebViewController alloc] init];
_innerWebVC.navigationView.hidden = YES;
_innerWebVC.innerWebViewH = self.innerWebHeight;
_innerWebVC.currentVC = self;
[self.view addSubview:_innerWebVC.view];
[self addChildViewController:self.innerWebVC];
}
return _innerWebVC;
}
网友评论