UINavigationController

UINavigationController

我在iPhone应用程序中使用了带有多个UINavigationControllers的tabBarController,现在我想添加对旋转的支持(在某些视图控制器上,不是全部)。我知道我需要为UIViewControllers实现supportedInterfaceOrientation方法。

旋转设备时,在UINavigationController上调用了supportedInterfaceOrientation,但我需要在viewControllers上调用它。最好的方法是什么?

  • 我已经看到一些人在UINavigationController上创建了一个类别,该类别重写了supportedInterfaceOrientation来查询子viewControllers。但是我知道苹果对使用类别覆盖方法不满意。 (我已经这样实现了它,并且工作正常,但是我想确保该应用程序继续与将来的iOS版本一起使用。)
  • 使用方法混淆吗?
  • 子类UINavigationController?

  • 任何建议表示赞赏。 :)

    最佳答案

    如果您使用的是iOS 6+,建议您将UINavigationController子类化并覆盖supportedInterfaceOrientations
    类似于:

    - (NSUInteger)supportedInterfaceOrientations;
    {
      return [self.topViewController supportedInterfaceOrientations];
    }
    

    关于ios - UINavigationController支持的InterfaceOrientations:类别vs swizzle,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21866880/

    10-13 04:29