1

我正在尝试找出一个问题,即在关闭使用显示的控制器后没有调用viewWillLayoutSubviews(and ) 方法 -viewDidLayoutSubviews

[self presentModalViewController:controller animated:YES];

并解雇

[self dismissModalViewControllerAnimated:YES];. 

UISplitViewController作为在详细信息区域中按下按钮的结果,此视图控制器显示在顶部。当我旋转设备时,没有模式向上,我确实得到了viewWillLayoutSubviews回调。但是,问题是,当我在模型展示期间旋转时,它不会正确更新视图并在关闭它后重新计算视图边界。根据 IOS 5 发行说明,我应该viewDidLayoutSubviews在关闭模态视图控制器后得到一个。

作为比较,我创建了一个没有任何其他代码的简单应用程序,它的工作方式与文档一致,它会viewWillLayoutSubviews在模式被关闭后调用。

我一直在检查我的真实应用程序代码,找不到任何错误。我正在寻找可以帮助解决这个问题的建议。为什么回调会在旋转时起作用,但在模态消失时不起作用?这可能与我的视图层次结构有关吗?

谢谢你的帮助!

4

1 回答 1

1

尝试使用委托方法viewWillAppear而不是viewWillLayoutSubviews. WillLayoutSubviews 仅在视图的边界发生变化时调用(当您旋转设备时会发生这种情况)。

于 2012-06-07T06:29:19.383 回答