首页 > 开发 > iOS > 正文

测试单独的tableViewController,present一个modalview,然后dissmiss掉,tableview变全屏

2017-09-08 14:03:45  来源:网友分享

controller(非全屏)里面presentModalViewController展开一个全屏的new view之后 貌似它外面的controller就会消失掉,dismiss之后presentModalViewController就会变全屏,
github上代码:
https://github.com/maintiendrai/widis...
帮忙解决下哦(这边说明下,rootview里面其实是可以直接加非单独的tableview的,但是为了跟ipad版共享代码,tableview我就用单独的controller)
ipad上不会有这种问题

解决方案

- (void)viewDidAppear:(BOOL)animated
{
[self.view setFrame:CGRectMake(0, 92, 312, 359)];
}
结贴了,这个还是会闪一下,无法实现rootviewcontroller里面直接放tableview的效果

我又来了,这个问题最后还是自己搞定了。可能自己对Custom Container View Controller的理解还不是很透彻
现在viewdidload的时候多了这句
[self addChildViewController:self.aloneController];
搞定了。上面自定义controller里面的viewdidappear方法也可以去掉了

- (void)viewDidLoad{    [super viewDidLoad];    [self addChildViewController:self.aloneController];    [self.view addSubview:self.aloneController.view];    [self.aloneController.view setFrame:CGRectMake(0, 92, 312, 359)];}

附上Custom Container View Controller的知识点:

在iOS 5之前框架并不支持自定义 Container View Controller, iOS 5开始开放了一些新的接口来支持支持自定义容器

addChildViewController:
removeFromParentViewController
transitionFromViewController:toViewController:duration:options:animations:completion:
willMoveToParentViewController:
didMoveToParentViewController:

其中前两个接口比较重要,可以直接改变View Controller 的 Hierarchy。