我在添加 barButtons 时遇到了一些问题,并在另一个问题的答案中找到了解决方案,但它没有解释为什么必须在同一范围内创建和添加按钮。我想知道为什么不能在类级别创建按钮并将它们添加到 viewDidLoad 之类的方法中。从下面复制的该问题中不起作用的示例代码:
let rightButton = UIBarButtonItem(title: "Right", style: .plain, target: self, action: #selector(onRightClick))
let leftButton = UIBarButtonItem(title: "Left", style: .plain, target: self, action: #selector(onLeftClick))
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = rightButton
navigationItem.leftBarButtonItem = leftButton
}
这会得到一个无法识别@objc 方法的错误(此处不包括)。这些方法没有任何问题,因为当您在 viewDidLoad 中移动按钮创建时,错误消失并且代码有效。