2009-04-29 71 views
8

這可能是一個愚蠢的問題,但它有可能保持在一個UINavigationController管理的多個視圖上的權利UIBarButtonItem?我有一系列視圖,它們通常具有相同的權利UIBarButtonItem,但是當我將新視圖推送到UINavigationController時,即使沒有更改,我也必須每次重新定義按鈕。大多數情況下,從一個視角到另一個視角的明顯的過渡動畫是困擾我的,因爲完全相同的按鈕會短暫地淡出然後返回,這是沒有必要的,因爲沒有實際的視覺變化。我應該考慮只需添加一個UIButton作爲我的UINavigationBar的子視圖,並通過這種方式實現「正確的按鈕」效果?持久rightBarButtonItem UINavigationItem的屬性

回答

14

我們在我們的應用程序中做到了這一點。我們創建了一個UIBarButtonItem,我們在用戶導航時從一個UIViewController交換到另一個UIBarButtonItem。竅門是使用UINavigationControllerDelegate,navigationController:willShowViewController:animated:方法。我們將傳出的UIViewController的rightBarButtonItem設置爲nil,並將傳入的控制器的rightBarButtonItem設置爲您的按鈕。管理是一件痛苦的事情,但它很有效。

+0

太棒了!謝謝。我忘了調查UINavigationControllerDelegate。 – LucasTizma 2009-05-13 14:31:23

+0

謝謝!爲我工作! :) – 2012-04-20 10:17:39

1

UIBarButtonItems可以創建爲nib/xib文件中的獨立實例。如果沒有什麼特別的事情阻止你能夠在Interface Builder中構建按鈕,那麼應該將它連接到需要重用該按鈕的每個視圖控制器的UINavigationItem的rightBarButtonItem屬性。沒有目標需要。