当我去编译时,我得到:
使用未解析的标识符' addButtonPressed'
我已经导入了UIKit,所以我不明白为什么会收到此错误。错误出现在这里:
let addButton = UIBarButtonItem(UIBarButtonSystemItem: .Add, target: self, action: #selector(addButtonPressed(_:)))
以下是整个代码。
import UIKit
class MasterViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
let addButton = UIBarButtonItem(UIBarButtonSystemItem: .Add, target: self, action: #selector(addButtonPressed(_:)))
self.navigationItem.rightBarButtonItem = addButton
}
func addButtonPressed(sender: AnyObject) {
let alertController = UIAlertController(title: "Add Item", message: "", preferredStyle: UIAlertControllerStyle.alert)
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
}
答案 0 :(得分:1)
您的选择器addButtonPressed(_:)
与您addButtonPressed(sender:)
的实际方法不符。
更改一个以匹配另一个。
您可以将选择器更改为:
#selector(addButtonPressed)
或
#selector(addButtonPressed(sender:))
请注意,如果您有多个具有不同参数的addButtonPressed
方法,则无法使用该第一个选择器选项,您需要使用包含参数的第二个选项。
或者您可以将选择器保持原样并将方法更改为:
func addButtonPressed(_ sender: UIBarButtonItem) {
}
无论您做出哪些更改,您还需要将@objc
添加到该功能。
@objc func addButtonPressed(_ sender: UIBarButtonItem) {
}