2017-10-10 115 views
1

如果我在故事板或代碼中設置標籤欄項目標題(見下文),當我點擊標籤並加載控制器時,它將更改爲該標籤的視圖控制器標題。我不想要這個。如何防止UITabBarItem的標題被控制器標題覆蓋?

我想要在故事板或代碼中設置的標籤欄項目標題保持不變。我如何實現這一目標?

我還是要設置控制器標題爲UINavigationController的上後退按鈕等顯示

override func viewDidLoad() { 
    super.viewDidLoad() 

    tabBarItem.title = "Keep me" 

    // But this overrides it, which I don't want. 
    title = "Don't let me change the tab bar title" 
} 
+0

[如何更改獨立於tabbar項目標題的uiviewcontroller標題]可能的副本(https://stackoverflow.com/questions/21615637/how-to-change-uiviewcontroller-title-independent-of-tabbar-item-title ) – HHK

回答

1

你可以改變

title = "Don't let me change the tab bar title" 

navigationItem.title = "Don't let me change the tab bar title" 

編輯:

override var title: String? { 
    didSet{ 
     tabBarItem.title = "you want" 
    } 
} 
+0

非常感謝。這是一個簡單的例子 - 在現實生活中,該選項卡下的視圖控制器使用[Turbolinks](github.com/turbolinks/turbolinks-ios)來設置標題。但我想我們可以調整Turbolinks並確保它只設置navigationItem標題。 –

+0

@HenrikN好吧,您可以重寫視圖控制器的'title'屬性,並將'tabBarItem.title'設置爲'didSet'所需的值。 –

+0

根據這個答案,我們最終覆蓋了Turbolinks來分配'navigationItem'。謝謝! https://github.com/turbolinks/turbolinks-ios/issues/101#issuecomment-335411356 –