我有两个视图控制器(ViewController1和ViewController2),其中ViewController1具有到ViewController2的模式选择,而ViewController2可以退回到ViewController1。

如果我按照以下步骤操作:


  ViewController1-旋转为风景-模态为VC2-ViewController2-旋转为肖像-转为VC1


然后,在ViewController1的viewWillAppear中,打印view.frame.size并得到此代码(在iPhone 6s模拟器上运行):

(667.0, 375.0)


因此,这意味着宽度大于高度,或者仍然处于横向。

这告诉我ViewController1尚未旋转,这很有意义,因为它在viewWillAppear中。

我当前的选项(我知道):


使用viewDidAppear-不是首选,因为我在这里重新加载集合视图,更改将很明显。
创建放松的序列-并非首选,因为这需要情节提要。


那我还有其他选择吗?是否有最适合我需求的视图控制器方法?

最佳答案

您是对的:在viewWillAppear期间,ViewController1的视图尚未处于窗口层次结构中,因此它没有机会进行布局。
通常,如果您有一些代码可以处理布局,则可以考虑将其放在viewWillLayoutSubviews或viewDidLayoutSubviews方法中。

关于ios - 模态关闭后,viewWillAppear没有更新的旋转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36511499/

10-11 19:56