2014-10-03 2 views
1

Я хотел бы задать простой вопрос: Как я могу присвоить переменную действию при создании кнопки?swift-- действие переменной кнопки

если для создания использования кнопки:

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

на Object-с я сделал

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

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

и на Swift?

ответ

0

Вы можете хранить структуры Swift Selector как переменную.

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

Если вы хотите селектор иметь переменную в нем, вы можете просто добавить переменную в строку, как это:

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

Это делает использование принятия селектора в StringLiteralConvertible.

Селекторы указаны в Using Swift With Objective C ebook.

1

использование NSSelectorFromString

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

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

спасибо Очень !!!! – user2244770

Смежные вопросы