您好,我有一个应用程序,其中控制器的以下层次结构:
- UITabBar控制器
- 带有 Table ViewController 的导航控制器
- UIView 控制器
情况如下。我想让所有的导航控制器都是纵向的,只有最后一个控制器应该是横向的。正确的横向左。
现在的问题是:当我推动新的控制器(最后一个)时,我希望方向是横向的。我已经覆盖了shouldAutorotate 和shouldAutorotateToInterfaceOrientation 方法。我还用掩码 LandscapeLeft 覆盖了方法supportedInterfaceOrientations?
我错过了什么吗?
我还在导航和标签栏控制器中实现了所有的旋转方法。在标签栏中:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// You do not need this method if you are not supporting earlier iOS Versions
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [self.selectedViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
return YES;
}
在导航控制器中:
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
return YES;
}
任何帮助将不胜感激。
这些是最后一个控制器中实现的方法
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}