2016-02-25 134 views
0

我有一個標籤欄控制器,有5個選項卡,每個選項卡都嵌入了導航控制器。有時我需要從另一個選項卡顯示視圖控制器。用多個導航控制器設置自定義導航後退按鈕

我重寫股票後退按鈕文本< BACK只是有它說<,這一點我使用

let backItem = UIBarButtonItem() 
backItem.title = "" 
navigationController?.navigationBar.tintColor = UIColor.whiteColor() 
navigationItem.backBarButtonItem = backItem 

然而,當我從不同的標籤欄加載一個視圖控制器(使用不同的導航控制器),我不知道如何從輔助導航控制器中刪除< BACK,所以我可以只顯示按鈕爲<。將上面的代碼放在prepareForSegue:中可以與一個導航控制器一起使用,但不能在第二個導航控制器中使用。非常感謝,任何見解都非常感謝!

回答

1

後退按鈕時看到的視圖控制器推到導航控制器的堆棧屬於,不以推視圖控制器,但對以前視圖控制器,所述一個表示的前推。

如果視圖控制器說:

self.navigationItem.backBarButtonItem = 
    UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil) 

......那麼當一個視圖控制器在它的上面推,後退按鈕會顯示沒有標題。

+0

非常感謝@matt的迴應。所以我明白在'prepareForSegue:'中設置先前的視圖控制器會爲即將推送的視圖控制器設置後退按鈕。在我的情況下,我從另一個視圖控制器收集視圖作爲此父視圖控制器的子視圖。我把代碼設置爲'prepareForSegue:'中的'backButton.title ='「'用於父視圖控制器以及子視圖控制器。我不確定新的視圖控制器會來自哪裏,它不會將標題更改爲「」。有任何想法嗎?再次感謝! – tahoecoop

+0

爲什麼在「prepareForSegue」中這樣做?如果它是視圖控制器的一個功能,你可以做到「viewDidLoad」。 – matt

+0

這樣做的伎倆,它在'viewDidLoad:'中正常工作。我看到它應該在'prepareForSegue:'中,但這看起來是錯誤的。再次感謝,真的很感激它! – tahoecoop