我整个上午都在尝试解决这个问题,但无济于事。这是我的情况:
我的应用程序中有一个跨两个视图的导航控制器。第一个视图不应旋转远离纵向。第二个视图应该在纵向和横向之间旋转。返回第一个视图应将其发送回纵向。
这是我目前拥有的代码(我已经尝试过但没有成功,所以绝不是可靠的):
应用委托:
- (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 处于横向并停留在那里。我怎样才能解决这个问题?