首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS 9:在UINavigationController pushViewController之后不再在viewWillAppear中设置帧

iOS 9:在UINavigationController pushViewController之后不再在viewWillAppear中设置帧
EN

Stack Overflow用户
提问于 2015-09-19 08:24:58
回答 4查看 2.5K关注 0票数 16

我正在尝试解决从iOS 9开始出现的视图放置错误。我正在从xib文件实例化一个视图控制器(非自动布局),然后将其推送到我的UINavigationController上。

问题是,当调用视图控制器的viewWillAppear方法时,它的框架还没有调整到导航控制器的大小,仍然是xib文件中设置的大小。直到viewDidAppear,它才能正确设置。

这完全把我的代码搞砸了。有没有人确切地知道是什么改变了导致这种情况的原因,以及处理它的最好方法是什么?我不想等到viewDidAppear,因为这看起来很糟糕,用户体验也很差。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-19 12:04:49

我也在寻找最好的修复方法。

我的临时方法是在"viewDidLayoutSubviews“中调用"viewDidAppear”中的代码。这样,一旦设置了帧,我的代码就会被调用。

但是,一定要添加一个布尔值或其他值,这样代码就不会在每次调用viewDidLayoutSubviews时都被调用

代码语言:javascript
复制
-(void)viewDidLayoutSubviews{
   if (didLayoutSubviews == NO){
       didLayoutSubviews = YES;
       // perform code that was in viewWillAppear
   }
}
票数 11
EN

Stack Overflow用户

发布于 2015-10-06 14:05:45

我也遇到过这个问题,

尝试从情节提要中取消选中“从NIB调整视图大小”选项

票数 0
EN

Stack Overflow用户

发布于 2015-10-07 14:49:46

尝试将布局代码从viewWillAppear移动到viewWillLayoutSubviews

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32662851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档