我试图实现我认为简单的任务,但尽管这里有类似的帖子,但解决方案却让我无法实现....
我在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中添加导航项/按钮后(在故事板中或以编程方式)按钮/导航项永远不会显示。
我已经看过一些帖子,例如下面的链接,并且逐字地遵循建议的步骤,但没有解决问题。任何帮助将不胜感激!
Adding buttons to navigation controllers How to add buttons to navigation controller visible after segueing?
答案 0 :(得分: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
}
}
}
}