2017-06-01 48 views
0

在我的根视图控制器中,我设置了一个带有图像的酒吧按钮项的数组,并将它们分配给右侧的酒吧按钮。Swift如何在推后保留导航栏按钮项

当我推动下一个视图控制器时,我的导航栏重置并仅显示后退按钮。

任何方式来保留导航栏,因为它在根视图控制器上设置,因此它会显示在所有页面上?

+0

在'prepareForSegue'中设置目标视图控制器的正确导航项。 – user1046037

回答

-1

当你在使用Push的视图控制器之间延续时,你会得到默认的“水平滑动”导航动画。尝试“呈现模式”或“呈现为弹出式广告”。

0

正如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() 
    } 
}