swift--变量按钮动作

问题描述:

我想问一个简单的问题: 如何在创建按钮时给动作赋予一个变量?swift--变量按钮动作

如果创建按钮使用:

newButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) 

上对象的C我做

NSString *selectorName = [NSString stringWithFormat:@"Button%d:",index+1]; 

[newButton addTarget:self action:NSSelectorFromString(selectorName) forControlEvents:UIControlEventTouchUpInside]; 

和斯威夫特?

您可以将Swift Selector结构存储为变量。

let sel : Selector = "buttonTapped:" 
button.addTarget(self, action: sel) 

如果你想选择到有它的一个变量,你可以简单地将变量添加到像这样的字符串:

let sel : Selector = "button\(buttonNumber)tapped" 

这使得使用选择的通过StringLiteralConvertible的。

选择器在Using Swift With Objective C ebook中提及。

使用NSSelectorFromString

let sel = NSSelectorFromString("Button\(index+1)") 

newButton.addTarget(self, action: sel, forControlEvents:UIControlEvents.TouchUpInside) 
+0

非常感谢你!!!! – user2244770 2014-10-03 22:10:52