2017-09-04 127 views
0

我試圖實現我認爲會是一個簡單的任務,但儘管類似的帖子在這裏被回答,解決方案逃避我....Xcode 8,添加UIButtons到NavigationBar的非初始視圖控制器

我在Xcode 8/swift 3中使用Main.storyboard創建一個初始ViewController爲UINavigationController的應用程序。然後我要推到UITabBarController具有其保持與關係的兩個視圖控制器:

override func viewDidLoad() { 
    super.viewDidLoad() 

    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    if let vc = mainStoryboard.instantiateViewController(withIdentifier: "test") as? UITabBarController { 
     self.navigationController?.pushViewController(vc, animated: true) 
    } 
} 

當啓動應用程序時,初始的ViewController成功「推」到TabBarController /它的ViewControllers(圖像下方)。我遇到的問題是在TabBarController ViewControllers中添加導航項/按鈕(在Storyboard或以編程方式)按鈕/導航項不會顯示。

Storyboard setup

Simulator screenshot

我見過幾個職位,如下面的鏈接,並逐字遵循建議的步驟,但一切都沒有解決的問題。任何幫助將不勝感激!

Adding buttons to navigation controllers How to add buttons to navigation controller visible after segueing?

回答

1

這是不顯示的,因爲你的TabBarController也有自己的UINavigationBar的。 ViewControllers都在裏面TabBarController

您可以創建自定義TabBarController和處理標籤的行動 試試這個代碼:

class TabBarController: UITabBarController { 
    override var selectedViewController: UIViewController? { 
    didSet { 
     switch self.selectedViewController { 
     case self.selectedViewController is FirstViewController: 
     self.navigationItem.rightBarButtonItem = self.firstButton 
     case self.selectedViewController is SecondViewControlller: 
     self.navigationItem.rightBarButtonItem = self.secondButton 
     default: 
     break 
     } 
    } 
    } 
} 
+0

得到它 - 感謝。有關如何讓他們展示的任何建議? – lhammer

+0

@ihammer更新了我的答案 –

+0

絕對的傳說,完美地完成了這個技巧!非常感謝。 – lhammer

相關問題