我有一个自定义的 View Controller (我们将其称为包装器)。它的 View 只包含一个 UIScrollView
。 ScrollView 包含另一个自定义 View Controller (我们将其称为 inside View ),从 xib 文件初始化( ScrollView 本身也是从 xib 文件初始化的,但我不相信这很重要)。
包装器 View 使用 UITabBarController
显示,其中包含多个类似的 View Controller 。
我遇到了这个奇怪的问题:包装器的旋转函数 - shouldAutoRotate
、willAnimateRotation
- 每次我旋转设备时都会被调用。出于某种原因,内部 View 的旋转函数没有被调用,但它仍然在旋转。内部 View 的 shouldAutoRotate
在初始化时(应用程序启动时)会被调用。
我查看了谷歌,找不到与我的案例相关的任何内容。我不确定它是否相关,但是在所有 xib 文件上检查了 Autoresize subviews。
如果你能帮我解决这个问题,我会很高兴。我需要在旋转时调用内部 View 的旋转函数以便手动安排它,但我想避免从包装 View 调用它们(而不是它应该工作)。
提前致谢!
最佳答案
好吧,innerViewController 的旋转功能将不会被调用,因为它们作为 subview 添加到您的 ScrollView 中,您可以做的是在父 Controller 中的方向发生变化时生成 NSNotification,然后您可以在 subview 中接收通知并相应地管理它们。或者,您可以在父 Controller 中调用 shouldAutoRoatate 时遍历 UIScrollView 的 subview ,然后手动调用 subview 的 should autorotate 方法。希望你明白。
关于objective-c - View Controller 内的 View Controller 不会收到旋转消息 - ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6746049/