在iOS6中轮换中断

时间:2013-03-25 12:17:52

标签: iphone ios objective-c ios6 orientation

我整个上午都在努力解决这个问题,但无济于事。这是我的情况:

我的应用中有两个视图的导航控制器。第一个视图不应远离纵向旋转。第二个视图应在纵向和横向之间旋转。回到第一个视图应该将其发送回肖像。

这是我目前的代码(我已经试验过但没有成功,所以绝不是固定的):

的AppDelegate:

- (NSUInteger)application:(UIApplication*)application
supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    return UIInterfaceOrientationMaskAll;
}

导航控制器:

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

第一个视图控制器:

-(BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

第二个视图控制器:

-(BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

目前的行为是应用程序将保留在第一个VC上的portait,在第二个VC上正确旋转,但如果我在横向状态下返回,则第一个VC处于横向状态并保持在那里。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题,据我所知,由于自动旋转的工作方式,你无法修复它。但是,我确实提出了一种解决方法 - 在横向模式下,我隐藏了导航栏,禁用了点击后退按钮的选项。这可能会或可能不适合你,但如果你想出一个更好的解决方案,我很乐意听到它。