为了账号安全,请及时绑定邮箱和手机立即绑定

dismiss之后presentModalViewController就会变全屏,为什么?

dismiss之后presentModalViewController就会变全屏,为什么?

iOS
料青山看我应如是 2023-04-16 14:10:05
controller(非全屏)里面presentModalViewController展开一个全屏的new view之后 貌似它外面的controller就会消失掉,dismiss之后presentModalViewController就会变全屏,帮忙解决下哦(这边说明下,rootview里面其实是可以直接加非单独的tableview的,但是为了跟ipad版共享代码,tableview我就用单独的controller)ipad上不会有这种问题
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

- (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。


查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信