Xcode 8、为非初始视图控制器添加UIButtons到NavigationBar
Xcode 8, adding UIButtons to NavigationBar for non initial view controllers
我正在努力完成我认为是一项简单的任务,但是尽管这里的类似帖子得到了回答,但我还是找不到解决方案....
我在 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 成功 'pushes' 到 TabBarController/it 的 ViewController(下图)。我遇到的问题是在 TabBarController ViewController 中添加导航 items/buttons 之后(在 Storyboard 中或以编程方式)按钮/导航项永远不会显示。
Storyboard setup
Simulator screenshot
我看过一些帖子,例如下面的链接,并逐字按照建议的步骤操作,但没有解决问题。任何帮助将不胜感激!
How to add buttons to navigation controller visible after segueing?
没有显示,因为你的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
}
}
}
}
我正在努力完成我认为是一项简单的任务,但是尽管这里的类似帖子得到了回答,但我还是找不到解决方案....
我在 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 成功 'pushes' 到 TabBarController/it 的 ViewController(下图)。我遇到的问题是在 TabBarController ViewController 中添加导航 items/buttons 之后(在 Storyboard 中或以编程方式)按钮/导航项永远不会显示。
Storyboard setup
Simulator screenshot
我看过一些帖子,例如下面的链接,并逐字按照建议的步骤操作,但没有解决问题。任何帮助将不胜感激!
没有显示,因为你的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
}
}
}
}