Swift:让按钮工作
Swift: Getting a Button to work
我在 viewDidLoad()
函数中创建了两个按钮:
buttonZ.frame = CGRectMake(0, 20, 100, 50)
buttonZ.backgroundColor = UIColor.greenColor()
buttonZ.setTitle("Zurück", forState: UIControlState.Normal)
buttonZ.addTarget(self, action: "buttonZAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonZ)
buttonV.frame = CGRectMake(screenBreite - 100, 20, 100, 50)
buttonV.backgroundColor = UIColor.greenColor()
buttonV.setTitle("Vorwärts", forState: UIControlState.Normal)
buttonV.addTarget(self, action: "buttonVAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonV)
在viewDidLoad()
之外我实现了两个函数buttonZAction()
和buttonVAction()
func buttonZAction(){
if(level - 1 >= 1){
level = level - 1
spielfeldChooser()
}
}
func buttonVAction(){
if(level + 1 <= maxLevel){
level = level + 1
spielfeldChooser()
}
}
当我点击这些按钮时出现问题。某处出现异常,我没有捕捉到(我只是包含了错误的主要部分)。
`*** 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[Pushy_2_0.ViewController buttonVAction:]:无法识别的选择器发送到实例 0x15db5410'
我希望你能帮助我。
你有 "buttonZAction:"
这意味着你的选择器应该接收一个参数。如果您不通过它们,请更改这些行:
buttonZ.addTarget(self, action: "buttonZAction:", forControlEvents: UIControlEvents.TouchUpInside)
buttonV.addTarget(self, action: "buttonVAction:", forControlEvents: UIControlEvents.TouchUpInside)
收件人:
buttonZ.addTarget(self, action: "buttonZAction", forControlEvents: UIControlEvents.TouchUpInside)
buttonV.addTarget(self, action: "buttonVAction", forControlEvents: UIControlEvents.TouchUpInside)
您的选择器有参数。但是你没有在函数 buttonZAction 中声明这个参数
像这样
func buttonZAction(sender: UIButton!){
if(level - 1 >= 1){
level = level - 1
spielfeldChooser()
}
}
func buttonVAction(sender: UIButton!){
if(level + 1 <= maxLevel){
level = level + 1
spielfeldChooser()
}
}
您在表示操作方法名称的字符串末尾添加了“:”,后者没有输入参数。不要误会,最好像这样使用选择器 class:
buttonV.addTarget (self, Action: Selector (buttonVAction ()), forControlEvents: UIControlEvents.TouchUpInside)
我在 viewDidLoad()
函数中创建了两个按钮:
buttonZ.frame = CGRectMake(0, 20, 100, 50)
buttonZ.backgroundColor = UIColor.greenColor()
buttonZ.setTitle("Zurück", forState: UIControlState.Normal)
buttonZ.addTarget(self, action: "buttonZAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonZ)
buttonV.frame = CGRectMake(screenBreite - 100, 20, 100, 50)
buttonV.backgroundColor = UIColor.greenColor()
buttonV.setTitle("Vorwärts", forState: UIControlState.Normal)
buttonV.addTarget(self, action: "buttonVAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonV)
在viewDidLoad()
之外我实现了两个函数buttonZAction()
和buttonVAction()
func buttonZAction(){
if(level - 1 >= 1){
level = level - 1
spielfeldChooser()
}
}
func buttonVAction(){
if(level + 1 <= maxLevel){
level = level + 1
spielfeldChooser()
}
}
当我点击这些按钮时出现问题。某处出现异常,我没有捕捉到(我只是包含了错误的主要部分)。
`*** 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[Pushy_2_0.ViewController buttonVAction:]:无法识别的选择器发送到实例 0x15db5410'
我希望你能帮助我。
你有 "buttonZAction:"
这意味着你的选择器应该接收一个参数。如果您不通过它们,请更改这些行:
buttonZ.addTarget(self, action: "buttonZAction:", forControlEvents: UIControlEvents.TouchUpInside)
buttonV.addTarget(self, action: "buttonVAction:", forControlEvents: UIControlEvents.TouchUpInside)
收件人:
buttonZ.addTarget(self, action: "buttonZAction", forControlEvents: UIControlEvents.TouchUpInside)
buttonV.addTarget(self, action: "buttonVAction", forControlEvents: UIControlEvents.TouchUpInside)
您的选择器有参数。但是你没有在函数 buttonZAction 中声明这个参数 像这样
func buttonZAction(sender: UIButton!){
if(level - 1 >= 1){
level = level - 1
spielfeldChooser()
}
}
func buttonVAction(sender: UIButton!){
if(level + 1 <= maxLevel){
level = level + 1
spielfeldChooser()
}
}
您在表示操作方法名称的字符串末尾添加了“:”,后者没有输入参数。不要误会,最好像这样使用选择器 class:
buttonV.addTarget (self, Action: Selector (buttonVAction ()), forControlEvents: UIControlEvents.TouchUpInside)