所示的UIViewController作爲問題說如何改變,我需要能夠在不同UIViewControllers由UINavigationController的顯示改變UINavigationBar的內容。這對於標題很容易實現,因爲導航控制器只是使用視圖控制器的title屬性。我正在努力的是根據視圖控制器更改左右欄按鈕項目。UINavigationBar的取決於UINavigationController的
,我會用它來改變他們的代碼已經在多個其他問題,解決,是不是真正的問題,雖然參考,我將使用下列內容:
UIBarButtonItem *newItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemAdd target:self action:nil];
newItem.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem = newItem;
我想我我正在尋找的是每當導航控制器顯示新的UIViewController以設置導航控制器佈局時調用的方法。在UINavigationController的的文檔是下面的方法:
// Called when the navigation controller shows a new top view controller via a push, pop or setting of the view controller stack.
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
然而,這種方法貌似不是在任何時候叫,當我運行的應用程序。那麼,當導航控制器顯示一個新的視圖控制器時,是否有一種方法會被調用?或者我在這裏完全錯了,現在已經有一種可以接受的方式,讓導航欄隨着顯示在其下面的視圖而改變,而我迄今爲止錯過了?
該方法是'UINavigationControllerDelegate'協議,而不是'UINavigationController'本身的一部分。你採用了協議並設置了「委託」? – pbasdf
您想以什麼方式更改不會自動發生的導航欄? – Wain
通常,您可以分別在每個視圖控制器中分配barButton項目(自動添加後退按鈕)。是否有一個原因,你想在導航控制器中做到這一點? –