objective-c - View Controller 内的 View Controller 不会收到旋转消息 - ios

标签 objective-c ios uiscrollview rotation

我有一个自定义的 View Controller (我们将其称为包装器)。它的 View 只包含一个 UIScrollView。 ScrollView 包含另一个自定义 View Controller (我们将其称为 inside View ),从 xib 文件初始化( ScrollView 本身也是从 xib 文件初始化的,但我不相信这很重要)。

包装器 View 使用 UITabBarController 显示,其中包含多个类似的 View Controller 。

我遇到了这个奇怪的问题:包装器的旋转函数 - shouldAutoRotatewillAnimateRotation - 每次我旋转设备时都会被调用。出于某种原因,内部 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/

相关文章:

ios - 无法在 iTunes Connect 上创建初始应用内购买,因为产品类型列表为空

ios - 类似 UITextView 的类,但具有处理 URL 点击的能力

objective-c - 如何从 Apple Watch 启动 iOS 应用程序?

iphone - 免费桥接问题

objective-c - 是否可以制作没有圆边的 UITextField?

ios - 如何禁用自定义的 UIButton

ios - 设置 UILabel.text 属性会导致线程中的内存泄漏

ios - 将带有自定义对象的 NSDictionary 写入文件

ios - 触摸方法未在放置在 UIScrollView 中的 UIView 上调用

ios - 为什么 UITableView 总是可以滚动而 UIScrollView 不能