2013-03-25 75 views
0

我一直在尝试整个早上来解决这个问题,但都无济于事。这是我的情况:在iOS6中旋转破裂

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

下面的代码我目前(我已经有没有成功尝试,所以绝不固体):

的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波泰特,运转正常在第二VC,但是如果我回去,而在景观,第一个VC是在景观并留在那里。我怎样才能解决这个问题?

+0

我认为这种类型的界面旋转是不鼓励的,并且在iOS 6+下不易支持。 UINavigationController记录为“不要子类”。如果将第二个视图控制器显示为模式视图,而不是通过导航控制器,则会有更多运气。模态呈现的视图控制器可以独立于其呈现视图控制器进行旋转。 – Greg 2013-03-25 14:41:47

回答

-1

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