我使用的是故事板,我引用了故事板,並使用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