视图控制器层次结构内的旋转视图控制器 - >标签栏控制器 - >导航控制器 - >查看控制器

时间:2012-01-23 17:31:01

标签: iphone objective-c ios ipad uitabbarcontroller

我的应用程序的视图控制器层次结构设置如下:

UIViewController
    |
UITabBarController
    |
    UINavigationController
    |  |
    |  UIViewController (*)
    |
    UINavigationController
       |
       UIViewController (*)

为什么我的UIViewController(*)没有得到(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration方法?

当我的应用程序具有如下设置的视图控制器层次结构时:

UITabBarController
    |
    UINavigationController
    |  |
    |  UIViewController (*)
    |
    UINavigationController
       |
       UIViewController (*)

UIViewController(*)get(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration方法。

2 个答案:

答案 0 :(得分:3)

这是视图控制器包含问题。如果您的目标是iOS 5,则可以使用new UIViewController methods for containment(请参阅管理子视图控制器)。否则,您需要将轮播消息从根UIViewController转发到UITabBarViewController

答案 1 :(得分:1)

UITabBarController中的所有UIViewControllers都应支持自动旋转,以允许UITabBarController的旋转。将此代码放在所有UIViewController (*)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
   return YES;
}