的TabBar控制器navigationcontrollers取向IOS 6(Tabbar cont

2019-08-03 07:30发布

我'目前工作的一个项目,我们有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控制器 ,但作为一个评论也提到“这几乎是为我工作。问题是,如果我在的风景是已经当我切换选项卡,人像只能查看它仍然是横向,旋转的肖像修复它,它不会转回的风景,但我仍然需要在肖像首次加载时”几乎是一样的在这里..

Answer 1:

我自己也有这个问题,我制定了一个解决方案,它不漂亮,但它的工作原理。

在您的TabbarController子类中实现此tabbarcontroller委托功能(记得设置代表):

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    int selected = self.selectedIndex;
    UIViewController *con = [[UIViewController alloc] initWithNibName:@"XIBName" bundle:nil];
    [[self.viewControllers objectAtIndex:selected] pushViewController:con animated:NO];
    [[self.viewControllers objectAtIndex:selected]popViewControllerAnimated:NO];
    [[self.viewControllers objectAtIndex:selected] setDelegate:nil];
}

在标签上的UINavigationController的push和pop navigationcontroller将使tabbarcontroller再次触发其取向的功能,如果你实施了定向代码正确它将改变你所需的方向。

我希望这有助于,请下跌自由评论,如果我需要解释任何细节。

顺祝商祺莫滕



文章来源: Tabbar controller with navigationcontrollers orientation ios 6