Ale*_*y K 7 switch-statement ios swift
我有4个按钮调用一个功能.根据按下哪个按钮,我需要隐藏按下后调用的功能内的按钮.我不知道按下了哪个按钮所以我试图为4个按钮中的每一个分配标签,以便通过标签识别它们并使用开关
我试过这个
switch sender.tag {
case 1:
self.button1.hidden = true
case 2:
self.button2.hidden = true
case 3:
self.button3.hidden = true
case 4:
self.button4.hidden = true
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用编译器说使用未解析的标识符'发送者'
怎么做到这一点?
编辑:
整体功能
if self.allowMistakeVar {
let mistakeAlert = UIAlertController(title: "Here is title!", message: "message of alert", preferredStyle: .Alert)
let okay = UIAlertAction(title: "OK", style: .Cancel) { UIAlertAction in
self.allowMistakeVar = false
self.allowMistakeButton.enabled = false
switch sender.tag {
case answer1Text:
self.answer1Text.hidden = true
case answer2Text:
self.answer2Text.hidden = true
case answer3Text:
self.answer3Text.hidden = true
case answer4Text:
self.answer4Text.hidden = true
}
}
mistakeAlert.addAction(okay)
self.presentViewController(mistakeAlert, animated: true, completion: nil )
} else {
Run Code Online (Sandbox Code Playgroud)
另一个案例..}
小智 11
试试这个,
1)为每个按钮分配标签
Button1.tag=1
Button2.tag=2
Button3.tag=3
Button4.tag=4
Run Code Online (Sandbox Code Playgroud)
2)然后检查您的常用按钮操作
func buttonClicked(sender: UIButton)
{
switch sender.tag {
case 1: self.sender.hidden = true //button1
break;
case 2: self.sender.hidden = true //button2
break;
case 3: self.sender.hidden = true //button3
break;
case 4: self.sender.hidden = true //button4
break;
default: ()
break;
}
}
Run Code Online (Sandbox Code Playgroud)
Jul*_*anM 10
为什么你总是想用标签来确定UIButton?如果被调用函数有一个sender参数,那么你知道通过这个参数调用函数的UIButton.
func buttonClicked(sender: UIButton)
{
switch sender {
case button1: // Do something
case button2: // Do some other stuff
...
default: ()
}
}
Run Code Online (Sandbox Code Playgroud)