在iOS 7中忽略了hidesBottomBarWhenPushed

问题描述:

此代码在iOS 7发布之前运行良好。我正在分配一个 UIViewController ,其中 hidesBottomBarWhenPushed YES ,作为 UINavigationController rootViewController 。但无论如何都会显示TabBar。以下是相关代码:

This code was working well until iOS 7 release. I'm assigning a UIViewController, with hidesBottomBarWhenPushed as YES, as the rootViewController of an UINavigationController. But the TabBar is being shown anyway. Here's the relevant code:

Login *lv = [[Login alloc] init];
lv.HowToUseShows = showHowToUse;
lv.hidesBottomBarWhenPushed = YES;

UINavigationController *BokShelfNav = [[UINavigationController alloc] initWithRootViewController:lv];

//... 

UITabBarController *tbController = [[UITabBarController alloc] init];
tbController.viewControllers = @[BokShelfNav,...];

任何有类似问题的人?

我发现调用方法和设置属性的顺序会影响标签栏是否显示。

I found that the order in which methods are called and properties are set has an impact on whether the tab bar is shown.

如果我在视图控制器的 viewDidLoad 方法中放入 self.hidesBottomBarWhenPushed = YES; 我正在推动标签栏还是表明。如果我将它移动到 init 方法,则标签栏会像在iOS 6上一样隐藏。

If I put self.hidesBottomBarWhenPushed = YES; in the viewDidLoad method of the view controller I'm pushing the tab bar still shows. If I moved it to the init method the tab bar hides as it used to on iOS 6.