"unrecognized selector sent to instance" 来自 UIBarButtonItem
"unrecognized selector sent to instance" from UIBarButtonItem
我知道这个问题已经被问过很多次了。但我似乎无法克服这个错误。我使用 Objective C 在我的应用程序的先前版本中运行它。
以下两种方法都在同一个 UIViewController
.
中
视图控制器也作为根视图控制器的引用,是 UINavigationController
的一部分。
func loadEditView(sender: AnyObject, animated: Bool = true) {
var editViewController: EditViewController = EditViewController()
// set some stuff up
self.navigationController!.pushViewController(editViewController, animated: animated)
}
override func loadView() {
super.loadView()
var button = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: Selector("loadEditView:"))
self.navigationItem.rightBarButtonItem = button
}
错误信息是
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyApp.ScaleViewController loadEditView:]: unrecognized selector sent to instance 0x14d643d0'
您使用选择器 loadEditView:
设置了栏按钮项目。并不是名称表明它需要一个参数。
但是,您的实际 loadEditView
函数有两个参数。因此错误。
您需要将 loadEditView
方法更改为仅采用一个参数 - 发件人。没有办法让按钮处理程序也采用第二个 animated
参数。
我知道这个问题已经被问过很多次了。但我似乎无法克服这个错误。我使用 Objective C 在我的应用程序的先前版本中运行它。
以下两种方法都在同一个 UIViewController
.
视图控制器也作为根视图控制器的引用,是 UINavigationController
的一部分。
func loadEditView(sender: AnyObject, animated: Bool = true) {
var editViewController: EditViewController = EditViewController()
// set some stuff up
self.navigationController!.pushViewController(editViewController, animated: animated)
}
override func loadView() {
super.loadView()
var button = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: Selector("loadEditView:"))
self.navigationItem.rightBarButtonItem = button
}
错误信息是
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyApp.ScaleViewController loadEditView:]: unrecognized selector sent to instance 0x14d643d0'
您使用选择器 loadEditView:
设置了栏按钮项目。并不是名称表明它需要一个参数。
但是,您的实际 loadEditView
函数有两个参数。因此错误。
您需要将 loadEditView
方法更改为仅采用一个参数 - 发件人。没有办法让按钮处理程序也采用第二个 animated
参数。