4

我有一个标签栏应用程序。我通过将选项卡栏控制器设置为窗口根视图控制器,然后通过子类化覆盖导航控制器和选项卡控制器的行为来固定选项卡的方向(尽管不推荐)。现在,除了更多导航控制器及其子视图控制器之外,方向在所有选项卡中都有效。我知道问题是设备旋转通知没有被传递给标签栏控制器中 morenavigationcontroller 内的子视图控制器。此外,更多的导航控制器是只读属性。

我的问题是我想支持更多导航控制器和儿童视图控制器中的所有方向。现在 shouautorotate 在 morenavigation 控制器的子视图控制器内没有被调用。

4

1 回答 1

1

在 iOS 6 之后,Apple 改变了应用程序中方向的工作方式。请看下面的线程。有很大帮助

带有导航控制器方向的标签栏控制器ios 6

或者您可以制作自定义标签栏控制器并实现以下方法

-(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;
}
于 2014-04-15T09:18:42.143 回答