2017-06-01 73 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() 
    } 
}