Я использую собственный класс ячеек, чтобы заполнить таблицу в swift.Я пытаюсь заполнить пользовательскую ячейку кнопкой действия
Мне нужно заставить его работать с массивом кнопок, чтобы каждая ячейка имела кнопку, которая выполняет функцию IBAction, уникальную для этой ячейки.
Вот мой класс ячейки объявления переменной кнопки:
class taskCell: UITableViewCell {
@IBOutlet weak var performTask: UIButton!
//ignoring code irrelevant to question
}
Все мои «задачи», что я хочу, чтобы это произошло при нажатии кнопки являются вариацией следующей схеме:
@IBAction func task1(sender: AnyObject){
if (prerequisite1 >= 1) {
prerequisite1 = prerequisite1 - 1;
points = points + 400;
prerequisite1Label.text = "\(prerequisite1)";
pointsLabel.text = "\(points)";
}
}
@IBAction func task2(sender: AnyObject){
if (prerequisite2 >= 1) {
prerequisite2 = prerequisite2 - 1;
points = points + 600;
prerequisite1Label.text = "\(prerequisite2)";
pointsLabel.text = "\(points)";
}
}
Вот моя попытка поместить их в массив в моем ViewController, что таблица находится в:
let firstTasks:[()->()] = [tasksViewController().task1(), tasksViewController().task2()]
И, наконец, вот моя попытка его осуществление ее реализации в Tableview:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! JobCell
cell.performTask.tag = indexPath.row
cell.performTask.addTarget(self, action: firstTasks[indexpath.row], forControlEvents: .TouchUpInside)
return cell
}
для этого не нужно, чтобы сделать его сложным, Jus присвоить тег в методе cellforrow как это: cell.performtask.tag = indexpath.row, а затем, когда вы вызовете свой метод, вы можете передать его аргумент (отправитель) как sender.tag == yourvalue, чтобы заставить его работать –
Я все еще запутался, чтобы повлиять на это. Я до сих пор не могу связать performTask с задачами функции –
ping me, теперь, где вы застряли, я вам помогу –