我使用的是故事板,我引用了故事板,并使用Storyboard ID获取了一个值。UIToolbar和UINavigationBar不隐藏在setHidden上:是
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *navigationController = (UINavigationController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"NavigationController"];
这是UIViewController
-viewDidLoad:
方法是目前在UINavigationController
层次的根内完成。
在我选择以示故事板都与UINavigationController
相关的UINavigationBar
和UIToolbar
。然后我将它们设置为隐藏在我的代码中:
UINavigationBar *navigationBar = navigationController.navigationBar;
[navigationBar setHidden:YES];
UIToolbar *toolbar = navigationController.toolbar;
[toolbar setHidden:YES];
但它们仍然可见!为什么他们仍然可见?单步执行代码告诉我这些变量有一个非零值。此外,如果它们为零,我显然会遇到运行时错误。
我也曾尝试在UINavigationController
方法:
[navigationController setNavigationBarHidden:YES];
[navigationController setToolbarHidden:YES];
这些都不能工作。
我想说明的是,该程序不会崩溃。它只是没有警告地滑过这些方法。检查这些“条”的状态表明它们实际上是隐藏的(在UINavigationController
实例上使用isNavigationBarHidden
和isToolbarHidden
),但这在模拟器中并不明显。
我里面用尽全力'-viewDidLoad:'和'-viewWillAppear:' – 2014-11-04 03:52:47
抱歉误读了那部分,那么你是否在'viewController -viewDidLoad:'内部实例化了'navigationController'并设置了'viewController navigationController'? 因为如果是这样,'self.navigationController'是一个只读var 您需要将'navigationController'的'rootViewController'设置为您想要的'viewController' – 2014-11-04 04:09:22
如果这是问题,我将编辑我的答案 – 2014-11-04 04:12:53