【问题标题】:Modal UINavigationController - I cant stop rotation模态 UINavigationController - 我无法停止旋转
【发布时间】:2012-11-11 17:11:53
【问题描述】:

我正在使用情节提要,并且在 UITabBarController 中嵌入了 UINavigationController。 我推送一个视图控制器,然后从这个视图控制器中我呈现一个带有 UIViewController 的 MODAL UINavigationController。

问题是,当我在模态视图之前的所有视图都不能旋转时,模态视图控制器可以旋转。 如何停止允许任何旋转的模态导航控制器?

我已尝试添加:

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

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

谢谢

【问题讨论】:

  • 您是否尝试过编辑 info.plist?使用支持的界面方向。
  • 我对不同的视图使用其他方向,我只需要限制这个视图。
  • @Darren 在这里你应该选择相同的 ...stackoverflow.com/questions/13023936/orientation-issue-in-ios-6/…。您可能会对此有所了解
  • 我刚尝试更改 plist,但后来我的一些其他视图崩溃了
  • 感谢 iOS 开发人员,我刚刚尝试过,但不幸的是 VC 仍在旋转 :(

标签: ios xcode


【解决方案1】:

尝试分类 UINavigationController

@implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
    return [[self.viewControllers lastObject] shouldAutorotate];
}

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

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}

【讨论】:

  • 非常危险 - 一个类别将取代一个方法的初始实现,而您不知道UINavigationController 的方法中应用了哪些其他逻辑。更好的解决方案是创建您自己的 UIViewController 抽象子类(例如称为 MyAbstractViewController),其中包含您答案中的方法,并且无论何时您想要查看,不要子类 UIViewController,而是子类 MyAbstractViewController
  • 这行得通。我用这些方法创建了一个 UINavigationController 子类,并将它用作模态视图之后的 NavController 类。这些和 TabController 中的那些都被调用,但它们使它工作。 deanWombourne,不确定这是否会起作用,因为将方法添加到 VC 不起作用。
  • @deanWombourne 子类化 UIViewController 不起作用。子类化 UINavigationController 确实如此。不过我同意,这个类别是危险的,子类是要走的路。
  • 如果它有一个模型视图控制器.....,所以我建议使用 self.visibleViewController xxxx
猜你喜欢
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 2016-11-23
  • 2012-03-27
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多