editButtonItem 对象是如何实例化的?
How is the editButtonItem object instantiated?
我正在学习有关使用钥匙串的教程,我更愿意在深入学习教程之前先了解代码的工作原理。我注意到在这个名为 MasterViewController 的 class 中,它将具有编辑样式的 UIBarButtonItem 分配给 navigationItem.leftBarButtonItem 变量。该代码不会在代码库中的任何地方实例化此编辑按钮,所以我很想知道它是如何工作的?当我尝试执行以下操作时,它不起作用:
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
}
}
这是一个内置的 UIBarButton
项目,用户可以随时使用。您可以直接使用它,它会在编辑和完成之间切换。
请参阅下面的文档。
如果您对某个对象或变量有疑问,只需按住 Command 并单击该变量和对象,您就可以查看更多相关信息。
我想你问的是这一行:
navigationItem.leftBarButtonItem = editButtonItem
editButtonItem
来自 UIViewController
。请注意,这是一个只读 属性。该实现可能是一个惰性计算 属性,它会在您第一次访问 属性 时创建按钮。它是 UIViewController
实施的一部分。
我正在学习有关使用钥匙串的教程,我更愿意在深入学习教程之前先了解代码的工作原理。我注意到在这个名为 MasterViewController 的 class 中,它将具有编辑样式的 UIBarButtonItem 分配给 navigationItem.leftBarButtonItem 变量。该代码不会在代码库中的任何地方实例化此编辑按钮,所以我很想知道它是如何工作的?当我尝试执行以下操作时,它不起作用:
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
}
}
这是一个内置的 UIBarButton
项目,用户可以随时使用。您可以直接使用它,它会在编辑和完成之间切换。
请参阅下面的文档。
如果您对某个对象或变量有疑问,只需按住 Command 并单击该变量和对象,您就可以查看更多相关信息。
我想你问的是这一行:
navigationItem.leftBarButtonItem = editButtonItem
editButtonItem
来自 UIViewController
。请注意,这是一个只读 属性。该实现可能是一个惰性计算 属性,它会在您第一次访问 属性 时创建按钮。它是 UIViewController
实施的一部分。