【问题标题】:UINavigationController - rotation issues iOS6UINavigationController - iOS6 的旋转问题
【发布时间】:2012-10-18 21:16:34
【问题描述】:

我将 UINavigationController 子类化如下:

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

-(BOOL)shouldAutorotate {
     return self.topViewController.shouldAutorotate;
}

但是,我在以不同于其父级的初始方向推动视图控制器时遇到了困难。就我而言,父视图仅是纵向的:

-(BOOL)shouldAutorotate {
    return NO;
}
-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

但我希望推送的视图仅是横向的 - 只有在手动更改设备的方向后才会如此。

-(BOOL)shouldAutorotate {
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

我非常感谢任何人指出我正确的方向。 (到目前为止,我只有一个 hacky 解决方案......)


编辑:

以下显示了我如何启动子类 UINavigationController

PortraitView *vc = [[PortraitView alloc] init];
    SubClassedNav *navController = [[SubClassedNav alloc] initWithRootViewController:vc];
    [navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:navController animated:YES completion:nil];

以及我随后如何推动新观点:

LandscapeView *vc = [[LandscapeView alloc] init];
    [[self navigationController] pushViewController:vc animated:YES];

【问题讨论】:

  • 我在我的一个应用程序中进行了完全相同的设置,并且按照您的建议运行。你确定它是你描述的设置吗?我唯一的想法是您在 Info.plist 中设置了哪些支持方向?
  • 感谢您的意见。 info.plist 支持所有方向,所以不幸的是我的错误似乎并不存在。如果您运行良好,我怀疑我在某个地方犯了一个基本错误..
  • 您是否仔细检查过您实际上在使用您的子类导航控制器?
  • 已编辑以显示我是如何做到的。如果您发现明显的错误,我将不胜感激!
  • InsertWittyName,因为我还没有在这方面取得进展,您是否可以为我指出一个正确实现此功能的项目,或者在此处发布您的实现?

标签: xcode uinavigationcontroller ios6 orientation


【解决方案1】:

仔细检查您是否在 AppDelegate 中设置了 [window setRootViewController:controller]

【讨论】:

  • 检查过但不高兴:(你能发帖/指点我一个正常运行的项目吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
相关资源
最近更新 更多