我知道这个问题已被多次询问过。但我似乎无法克服这个错误。我使用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'
答案 0 :(得分:3)
使用选择器loadEditView:
设置条形按钮项目。不是名称表明它需要一个参数。
但是,您的实际loadEditView
函数需要两个参数。因此错误。
您需要将loadEditView
方法更改为仅使用一个参数 - 发件人。按钮处理程序也无法获取第二个animated
参数。