2013-05-09 54 views
0

我認爲這是一個非常簡單的任務,但我無法得到它。在故事板上有一個不太複雜的viewcontroller。這是我想要做的:將leftBarButtonItem替換爲backButtonBarItem

我希望我的視圖控制器的導航欄有3個按鈕,但一次只能顯示兩個。一個按鈕是一個簡單的uibarbuttonitem,總是在右側。另一個是總是在左側的backbuttonitem。最後我想要一個保存按鈕也在左側。我希望這個保存按鈕僅在編輯uitextview時出現在後退按鈕的位置,然後當textview完成編輯或單擊保存按鈕時,再次出現後退按鈕以代替保存按鈕。

任何人都知道簡單的方法來做到這一點?我是通過故事板完成的,還是應該完全通過程序來完成?

回答

1

我不知道故事板,但在代碼中這是微不足道的。要顯示「保存」按鈕上留下您創建按鈕並撥打:

self.navigationItem.leftBarButtonItem = saveButton; 

當你要刪除的「保存」按鈕,並再次顯示後退按鈕,你只需要做:

self.navigationItem.leftBarButtonItem = nil; 

這段代碼進入你的視圖控制器(自我),它假設視圖控制器已被添加到導航控制器。

+0

你也可以嘗試讓所有3個都存在,但是通過編程設置按鈕上的'hidden'屬性,你不希望用戶在任何給定的時間看到/能夠選擇它們。 – Nick 2013-05-09 23:50:54

+0

@ nickv2002沒有必要。當視圖控制器被壓入導航堆棧時,後退按鈕會自動創建。設置'leftBarButtonItem'會自動隱藏後退按鈕並清除'leftBarButtonItem'會自動重新顯示後退按鈕。 – rmaddy 2013-05-09 23:52:16

+0

是的,適用於導航堆棧,但不適用於其他上下文。 – Nick 2013-05-09 23:56:03