Swift如何在推后保留导航栏按钮项
问题描述:
在我的根视图控制器中,我设置了一个带有图像的酒吧按钮项的数组,并将它们分配给右侧的酒吧按钮。Swift如何在推后保留导航栏按钮项
当我推动下一个视图控制器时,我的导航栏重置并仅显示后退按钮。
任何方式来保留导航栏,因为它在根视图控制器上设置,因此它会显示在所有页面上?
答
当你在使用Push的视图控制器之间延续时,你会得到默认的“水平滑动”导航动画。尝试“呈现模式”或“呈现为弹出式广告”。
答
正如user1046037所说的,您可以在准备赛格时设置项目按钮。
实施例:
let helpViewController = HelpViewController(nibName: "HelpViewController", bundle: nil)
let someLeftButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, target: self, action: "someAction")
helpViewController.navigationItem.leftBarButtonItem = someLeftButton
helpViewController.navigationItem.leftItemsSupplementBackButton = true
navigationController?.pushViewController(helpViewController, animated: true)
这一个是保持左按钮项和背面之一。
helpViewController.navigationItem.leftItemsSupplementBackButton = true
如果你要使用几个Viewcontrollers相同的按钮,你可以创建一个BaseViewController设置按钮时,他的行为。
class AHBaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
configureNavigationBar()
// Configure Common status bar if you want too.
}
func configureNavigationBar() {
let someLeftButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, target: self, action: "someAction")
navigationItem.leftBarButtonItem = someLeftButton
navigationItem.leftItemsSupplementBackButton = true
}
}
然后只是继承它,在你想要显示按钮(s)的viewControllers。
class HelpViewController: AHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
在'prepareForSegue'中设置目标视图控制器的正确导航项。 – user1046037