我正在尝试实现我认为这是一项简单任务的事情,但是尽管这里有类似的帖子,但解决方案仍然使我感到不安。...
我正在使用Xcode 8/swift 3中的Main.storyboard
创建一个应用程序,而初始View Controller为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)
}
}
启动该应用程序时,初始VioneController成功地"推动"到TabbarController/IT's ViewControllers(下图)。我遇到的问题是在TabbarController ViewControllers中添加导航项目/按钮(在情节板或编程中),按钮/导航项目永远不会显示。
故事板设置
模拟器屏幕截图
我已经看到了一些帖子,例如下面的链接,并遵循了逐字化的步骤,但没有解决问题。任何帮助将不胜感激!
将按钮添加到导航控制器如何将按钮添加到导航控制器后可见?
它没有显示,因为您的tabbarcontroller也有自己的uinavigationbar。ViewController在TabbarController
内您可以创建自定义TabbarController并处理Tabs Action尝试此代码:
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
}
}
}
}