[英]Swift unrecognized selector sent to instance - What am I missing?
我不明白為什么下面的按鈕會拋出錯誤:2014-08-13 00:29:57.674 view1[26581:842344] -[view1.ViewController buttonAction:]: unrecognized selector sent to instance 0x797731c0 2014-08-13 00:29:57.677 view1[26581:842344] *由於未捕獲的異常“NSInvalidArgumentException”而終止應用程序,原因:“-[view1.ViewController buttonAction:]:無法識別的選擇器發送到實例 0x797731c0”。 任何幫助表示贊賞。 非常感謝
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
func buttonAction(sender:UIButton)
{
println("Button tapped")
}
let windowsize = CGRect(x: 0, y: 0, width: 320, height: 480)
let labelsize = CGRect(x: 0, y: 200, width: 140, height: 60)
let myButton = UIButton(frame: CGRectMake(0, 0, 100, 100))
let myView = UIView(frame: windowsize)
let viewwidth = myView.frame.width
let spaceleft = (viewwidth - labelsize.width)/2
myView.backgroundColor = UIColor .blackColor()
let myLabel = UILabel(frame:labelsize)
myLabel.frame.origin.x = spaceleft
myLabel.text = "Hello"
myLabel.font = UIFont(name: "Chalkduster", size: 22)
myLabel.textColor = UIColor .whiteColor()
myLabel.textAlignment = NSTextAlignment.Center
myLabel.backgroundColor = UIColor .redColor()
//myView.addSubview(myButton)
myView.addSubview(myLabel)
self.view.addSubview(myView)
let button = UIButton.buttonWithType(UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 50)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Test Button", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
myView.addSubview(button)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
您的buttonAction
目標嵌套在您的viewDidLoad()
方法中。 把它移到外面,它應該是可以到達的。
class ViewController: UIViewController {
func buttonAction(sender:UIButton)
{
println("Button tapped")
}
override func viewDidLoad() {
super.viewDidLoad()
// ...
let button = UIButton.buttonWithType(UIButtonType.System) as UIButton
// ...
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
myView.addSubview(button)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.