hidesBottomBarWhenPushed但弹出时

Nic*_*las 3 iphone cocoa-touch uiviewcontroller uinavigationcontroller

我遇到的问题似乎非常简单.我的应用程序有一个视图层次结构,包含一个包含UINavigationControllers的UITabBarController.当我从根导航到第二级时,我将hidesBottomBarWhenPushed设置为true,以便隐藏选项卡栏

在我的firstLevelController上:

[secondLevelController setHidesBottomBarWhenPushed:YES];

[self.navigationController pushViewController:secondLevelController animated:YES];
Run Code Online (Sandbox Code Playgroud)

之后当我推到第三级时,我再次通过在secondLevelController中执行标签栏:

[self setHidesBottomBarWhenPushed:NO];

[thirdLevelController setHidesBottomBarWhenPushed:NO];

[self.navigationController pushViewController:thirdLevelController animated:YES];
Run Code Online (Sandbox Code Playgroud)

(我知道,我不喜欢这[self setHidesBottomBarWhenPushed:NO]两种,但它不起作用......)

所以,问题在于:当我按下第三级的后退按钮并出现第二个视图时,我需要再次隐藏标签栏,但我找不到这样做的方法.

任何帮助表示赞赏

小智 12

这对我有用.

[self setHidesBottomBarWhenPushed:NO];
[thirdLevelController setHidesBottomBarWhenPushed:NO];
[self.navigationController pushViewController:thirdLevelController animated:YES];
[self setHidesBottomBarWhenPushed:YES];
Run Code Online (Sandbox Code Playgroud)

第三级控制器显示标签栏,第二级控制器在弹出第三级控制器时不显示标签栏.


Tal*_*OUI 5

在你的secondViewController上,执行:

- (BOOL) hidesBottomBarWhenPushed {
    return ([self.navigationController.viewControllers lastObject] == self);
}
Run Code Online (Sandbox Code Playgroud)

这样,当您在secondViewController上时,tabbar将始终隐藏,并且它将显示在其他视图控制器上