簡體   English   中英

editButtonItem對象如何實例化?

[英]How is the editButtonItem object instantiated?

我正在關注使用鑰匙串的教程,並且更喜歡在開始學習教程之前先了解代碼的工作原理。 我注意到,在名為MasterViewController的此類中,它向NavigationItem.leftBarButtonItem變量分配了一種具有編輯樣式的UIBarButtonItem。 代碼沒有在代碼庫中的任何地方實例化此編輯按鈕,因此我很好奇這是如何工作的? 當我嘗試執行以下操作時,它不起作用:

navigationItem.rightBarButtonItem = camera

為什么是這樣?

我正在關注的教程可以在Ray Weinerlich網站上找到:

這是MasterViewController的代碼:

    class MasterViewController: UIViewController, UITableViewDelegate {

  // MARK: - IBOutlets
  @IBOutlet var tableView: UITableView!

  // MARK: - Properties
  var detailViewController: DetailViewController?
  var managedObjectContext: NSManagedObjectContext?
  var isAuthenticated = false
  var didReturnFromBackground = false
  var _fetchedResultsController: NSFetchedResultsController<Note>?

  // MARK: - View Life Cycle
  override func viewDidLoad() {
    super.viewDidLoad()

    navigationItem.leftBarButtonItem = editButtonItem


    let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))
    navigationItem.rightBarButtonItem = addButton

    if let split = splitViewController {
      let controllers = split.viewControllers
      detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? DetailViewController
    }
}

這是內置的UIBarButton項,用戶可以隨時使用。 您可以直接使用它,它將在編輯和完成之間切換。

請參閱下面的文檔。 在此處輸入圖片說明

如果您對某個對象或變量有疑問,只需按住Command鍵並單擊該變量和對象,即可查看更多有關該對象的信息。

我想您是在問這條線:

navigationItem.leftBarButtonItem = editButtonItem

editButtonItem來自UIViewController 請注意,這是一個只讀屬性。 該實現可能是一個惰性計算屬性,該屬性在您首次訪問該屬性時創建按鈕。 它是UIViewController實現的一部分。

暫無
暫無

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

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