ios - 关闭全屏模式时,不会调用 viewWillLayoutSubviews 方法

标签 ios ipad uikit

我试图找出一个问题,即在关闭使用 - 显示的 Controller 后,viewWillLayoutSubviews(和 viewDidLayoutSubviews)方法没有被调用

[self presentModalViewController:controller animated:YES];

并用

解雇
[self dismissModalViewControllerAnimated:YES];. 

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

为了比较,我创建了一个基本的应用程序,其中没有我的其他代码,它按照文档中的说明工作,它将在模态消失后调用 viewWillLayoutSubviews

我一直在检查我的真实应用程序代码,但找不到任何错误。我正在寻找有助于解决此问题的建议。为什么回调在旋转时有效,但在模态消失时无效?可能是我的 View 层次结构有问题吗?

感谢您的帮助!

最佳答案

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

关于ios - 关闭全屏模式时,不会调用 viewWillLayoutSubviews 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926543/

相关文章:

objective-c - 如何在标题更改时停止不需要的 UIButton 动画?

iOS 崩溃报告 : EXC_CRASH (SIGABRT) - stringByAppendingString

CSS 规则未正确/完整应用

iphone - 如何管理 UIImageView 内容模式?

ios - UIUserNotificationSettings 的 Swift 3.0 语法更改

ios - 向所有 UIViewControllers 添加变量

iphone - Box2D 无限循环 (b2World::SolveTOI)

ios - UIWebView 的 Swift onfinish 加载事件

jquery - 如何在 native iOS 应用程序中添加 AJAX 组件

ios - Xcode - 将字体从 iPhone 缩放到 iPad 大小