【发布时间】:2012-06-08 00:00:07
【问题描述】:
我的 UIScrollView 子类中有一个 UIViewController 的视图。问题是当我旋转设备时,我的 UIViewController 没有调用 willRotate 委托。这可能是因为 UIView 没有在其中实现旋转委托。解决这个问题的最佳方法是什么?
基本上结构是我有一个 MainViewController,其中有一个 UIScrollView。在这个 UIScrollView 里面我有一个子视图,它是一堆 UIViewControllers 的视图。现在的问题是,当我旋转时它没有收到旋转调用。处理此问题的一种方法是将 MainViewController 委托给相应的 UIViewController。有没有更好/优雅的方法来解决这个问题?
我将它添加为来自我的 UIScrollView 而不是我的 MainViewController 的子视图,并且您不能从 UIView 执行 UIViewControllers 包含。如果我错了,请纠正我
【问题讨论】:
-
确保
MainViewController的视图.autoresizeSubviews的属性设置为YES。 -
如果您使用 iOS 5,您应该使用 childViewController API 并将所有这些视图控制器添加为滚动视图视图控制器的子级。然后,您可以免费使用旋转方法以及所有其他外观方法。
-
@Matt 是的..我知道这一点.. 但是如何添加视图控制器作为滚动视图的子视图?您不能从 UIView 添加 childViewController 对吗? UIScrollView 是 UIView 而不是 UIViewController。我猜 UIViewController 包含仅适用于 UIViewController 到 UIViewController 而不是 UIView 到 UIViewController?如果我理解错了,请纠正我
-
如果你有开发者许可证,你可以观看这个视频:developer.apple.com/videos/wwdc/2011/?id=102 它信息量很大。基本上,您有一个视图层次结构和一个视图控制器层次结构。您想将视图控制器添加到控制器层次结构中,并将它们的视图添加到视图层次结构中。
标签: iphone objective-c ios ipad