Вопрос

Я новичок.

У меня есть собственный UITableViewCell с тремя элементами:

uilabel uitextfield и uibutton

Мой вопрос: как узнать, из какой ячейки была нажата кнопка или отредактировано текстовое поле?

Есть ли способ их отслеживать?

Спасибо за любые ответы.

Это было полезно?

Решение

Обычно после настройки пользовательской ячейки я сохраняю NSIndexPath ячейки в заголовке кнопки для состояния UIControlStateApplication.

В вашем tableView:ячейкаForRowAtIndexPath:метод при настройке ячейки:

[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication];

Затем в действии кнопки:


- (IBAction) buttonWasClicked:(UIButton *) senderButton {
    NSIndexPath *indexPath;

    indexPath = (NSIndexPath *)[senderButton titleForState:UIControlStateApplication];

    NSLog(@"Sender button was clicked in cell at NSIndexPath section: %d row: %d ", [indexPath section], [indexPath row]);
}

Я не очень доволен этим способом.Если у кого-то есть более чистый способ сделать это, я хотел бы услышать об этом.

Другие советы

Если у вас есть только один раздел, вы можете сохранить indexPath.row в button.tag и получить его в действии, вызываемом этой кнопкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top