簡體   English   中英

Swift如何在推送后保留導航欄按鈕項

[英]Swift how to preserve navigation bar button items after 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

如果要在多個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
  }
}

然后,只需在要顯示按鈕的viewControllers中繼承它即可。

class HelpViewController: AHBaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

當使用Push在視圖控制器之間進行選擇時,您將獲得默認的“水平幻燈片”導航動畫。 嘗試“以模態形式呈現”或“以彈出窗口形式呈現”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM