代码之家  ›  专栏  ›  技术社区  ›  Laurence Wingo

editButtonItem对象是如何实例化的?

  •  0
  • Laurence Wingo  · 技术社区  · 6 年前

    我遵循的是一个关于使用钥匙链的教程,我更喜欢在进入教程之前理解代码的工作原理。我注意到在这个名为MasterViewController的类中,它为navigationItem.leftBarButtonItem变量指定了一个具有编辑样式的UIBarButtonItem。代码在代码库的任何地方都没有实例化这个编辑按钮,所以我很想知道它是如何工作的?当我尝试执行以下操作时,它不起作用:

    navigationItem.rightBarButtonItem = camera
    

    我下面的教程可以在 Ray Weinerlich Website :

    以下是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
        }
    }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Jaya Mayu    6 年前

    它是内置的 UIBarButton

    请参阅下面的文档。 enter image description here

    如果您对某个对象或变量有疑问,只需在Command+上单击该变量和对象,您就可以进一步检查它。

        2
  •  1
  •   rmaddy    6 年前

    我想你是在问这句话:

    navigationItem.leftBarButtonItem = editButtonItem
    

    editButtonItem 来自 UIViewController UIView控制器 实施。