2017-09-04 82 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

相关问题