2010-02-04 42 views
44

可能重複:
How do I change the title of the 「back」 button on a Navigation Bar如何設置UINavigationBar上後退按鈕的文本?

現狀:
我有一個由導航控制器支配一個UIViewController。我可以通過簡單地調用self.title = @"title"來設置覆蓋UIViewController的導航欄的標題。但是,我希望能夠設置導航欄的後退按鈕文本,太(針對不同的語言N」等..)

問題:
我不知道如何設置後退按鈕的文本。

問題:
如何設置UINavigation欄的後退按鈕(編程不是在IB)?

+0

這個問題問得好。可能沒有記錄的方法來做到這一點(我真的不知道),但如果將它改爲任何不是前一個項目的標題或「返回」一詞都不反對的東西,我會感到驚訝HIG。如果它違反HIG,那麼這個定製化很可能會導致應用拒絕。/2分錢小費。 – 2010-02-04 06:19:14

+3

建議您將「接受」設置爲Boon的答案,這是正確的。馬特的回答不是一個好的解決方案(對不起,馬特!) – Olie 2012-02-20 20:47:58

+0

更改後面的標籤不是針對HIG,它只是有道理。 – 2015-06-12 13:41:20

回答

149

setTitle的方式 - 雖然可能似乎工作,是不正確的。如果您密切關注,您會注意到,當新視圖通過pushViewController動畫到視圖中時,導航項目更改爲新標題。事實上,你必須在viewWillAppear中恢復你的頭銜是kludgy,這進一步表明了它的黑客性質。

正確的方法是你的pushViewController之前做到以下幾點:

 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
           initWithTitle: @"Back Button Text" 
           style: UIBarButtonItemStyleBordered 
           target: nil action: nil]; 

[self.navigationItem setBackBarButtonItem: backButton]; 
[backButton release]; 

+8

不幸的是,在'prepareForSegue:sender:'回調中不起作用。我不確定接受的故事板的解決方案是什麼。 – wcochran 2012-07-19 18:35:41

+1

我在prepareForSegue:sender:callback中得到了這個結果。剛剛擺脫[backButton發佈];如果你正在使用ARC。 – dnorcott 2012-09-25 17:19:16

+9

有一件事值得在這裏強調:你在當前的視圖控制器上設置後退按鈕,並且你會在下一個視圖控制器中看到它......以防它幫助任何人......它幫助了我。 – Zsolt 2013-06-15 08:33:48

12

最好的和最簡單的方法,根據蘋果文檔視圖控制器的標題設置成什麼回來應該說是這樣的 -

實施例:

如果viewController1viewController2下(以及在viewController2back button將要viewController1

viewController1.title = @"something awesome"; 

back buttonviewController2將顯示「的東西真棒」

+2

如果您將標題添加到導航堆棧中的視圖控制器,則該標題將顯示爲後退按鈕的標題。 「返回」是默認文本。設置完成後,您不需要刪除此標題。因此這是正確的答案。 – Mark 2013-01-09 19:17:49

相關問題