我'目前工作的一个项目,我们有4个选项卡的标签栏控制器,并在每个标签有一个导航控制器。 在每个这些导航控制器的有多个viewcontrollers推就可以了。
我看了很多帖子在这里和其他地方,我们目前已经做了以下内容:
子类的UITabBarController
- (BOOL)shouldAutorotate
{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotate];
}
- (NSUInteger) supportedInterfaceOrientations
{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController]supportedInterfaceOrientations];
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation];
}
这项工作很好,如果我们在我们每个viewcontrollers的指定如下:
- (NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}
预期这将其锁定为纵向。
但是,现在出现了真正的问题! 如果我们在我们的其中一个选项卡视图 - 控制指定它旋转为横向,它工作正常,但是当我们再更改标签它仍然是在景观,这是不是我们想要的!
所以总结起来,有任何人有一个解决方案,你如何锁定到一个给定的方向期待一个几乎所有的意见,并可以更改标签,他们是在你指定的方向(纵向这里)?
我也看到这篇文章的iOS 6的UITabBarController支持方向与电流UINavigation控制器 ,但作为一个评论也提到“这几乎是为我工作。问题是,如果我在的风景是已经当我切换选项卡,人像只能查看它仍然是横向,旋转的肖像修复它,它不会转回的风景,但我仍然需要在肖像首次加载时”几乎是一样的在这里..