我正在尝试追踪在使用 -
显示控制器后不会调用viewWillLayoutSubviews
(和viewDidLayoutSubviews
)方法的问题
[self presentModalViewController:controller animated:YES];
并解雇
[self dismissModalViewControllerAnimated:YES];.
此视图控制器显示在UISplitViewController
的顶部,作为在详细信息区域中按下按钮的结果。当我旋转设备时,如果没有模态,我会得到viewWillLayoutSubviews
回调。但问题是,当我在模型呈现期间旋转时,它不会正确更新视图并在解除视图边界后重新计算视图边界。根据IOS 5发行说明,我在解雇模态视图控制器后应该得到viewDidLayoutSubviews
。
为了进行比较,我创建了一个没有其他代码的裸骨应用程序,它按照文档记录工作,在模式解除后会调用viewWillLayoutSubviews
。
我一直在翻看我的真实应用代码,但找不到任何错误。我正在寻找有关帮助解决这个问题的建议。旋转时为什么回调会起作用,而当模态被解除时回调不起作用?它可能是我的视图层次结构吗?
感谢您的帮助!
答案 0 :(得分:1)
尝试使用委托方法viewWillAppear
代替viewWillLayoutSubviews
。 WillLayoutSubviews仅在视图边界发生变化时调用(旋转设备时会发生这种情况)。