【发布时间】:2017-06-01 23:13:19
【问题描述】:
在我的根视图控制器中,我设置了一组带有图像的条形按钮项,并将它们分配给右侧的条形按钮。
当我按下下一个视图控制器时,我的导航栏会重置并且只显示一个后退按钮。
有什么方法可以保留在根视图控制器上设置的导航栏,以便在所有页面上显示?
【问题讨论】:
-
在
prepareForSegue中设置目标视图控制器的右侧导航项。
标签: ios swift view controller push
在我的根视图控制器中,我设置了一组带有图像的条形按钮项,并将它们分配给右侧的条形按钮。
当我按下下一个视图控制器时,我的导航栏会重置并且只显示一个后退按钮。
有什么方法可以保留在根视图控制器上设置的导航栏,以便在所有页面上显示?
【问题讨论】:
prepareForSegue中设置目标视图控制器的右侧导航项。
标签: ios swift view controller push
正如 user1046037 所说,您可以在准备 segue 时设置项目按钮。
例子:
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
如果您要在多个 Viewcontroller 中使用相同的按钮,您可以创建一个 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
}
}
然后在要显示按钮的视图控制器中继承它。
class HelpViewController: AHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
【讨论】:
当您使用 Push 在视图控制器之间切换时,您将获得默认的“水平滑动”导航动画。尝试“呈现模态”或“呈现为弹出框”。
【讨论】: