我有两个视图控制器(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/