我有一个故事板iOS应用程序,我有很多观点。我有一个UINavigationController,选中了“显示工具栏”选项,然后填充整个视图层次结构。
假设我的视图流是3个视图,A,B和C:
View A --(push)--> View B --(push)--> View C
View A是一个普通的视图控制器,工具栏上有一个用于推动视图B的按钮。 视图B是一个表控制器,所以我想在这里隐藏工具栏。 视图C是另一个视图,如视图A,需要显示工具栏。
在Xcode / Storyboard中,如果在View BI中选择“隐藏推送时的底部栏”,它就会这样做 - 底部栏对于视图B是隐藏的。同样,如果我为“底栏”选择“无”选择选项,View B.没有任何标准。好。
这是我的问题:无论我做什么,使用视图B的任一选项,我的工具栏都不会返回到视图C.如果我将View C的工具栏设置为推断(并且取消选中隐藏推送)它不会显示,也不是我手动将其设置为“工具栏”。
有什么想法吗?
答案 0 :(得分:16)
正如@Zoltán所说,Storyboard没有提供完整的答案。
在viewDidLoad或viewWillAppear上设置self.navigationController.toolbarHidden = YES / NO是有效的,但很丑(在视图过渡动画期间,黑色矩形代替工具栏)。
这是我为View B控制器(以及View C的反转)所做的,以模仿故事板中“hide on push”选项的动画平滑度:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setToolbarHidden:YES animated:YES];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setToolbarHidden:NO animated:YES];
}
答案 1 :(得分:2)
我认为你不能完全在故事板中做到这一点。但是,您可以将其设置为始终显示,将按钮放在您想要显示的每个视图上,然后您可以调用 self.navigationController.toolbarHidden = YES;加载视图控件时,您不希望工具栏出现。 之后如果出现另一个VC,你想要工具栏,只需将toolbarHidden设置为NO。