Как вызвать действие от пользовательской кнопки в UITableViewCell - PullRequest
4 голосов
/ 17 мая 2009

Я создал подкласс UIButton, чтобы я мог установить флажок на iPhone. Этот флажок является частью подкласса UITableViewCell. У меня вопрос, как я могу прикрепить действие к нажатой кнопке и реализовать этот метод в контроллере табличного представления?

Я пытался использовать метод addTarget:action:, но, похоже, это не работает. Один из вариантов - использовать App Delegate, но это не очень хорошая практика программирования.

Ответы [ 2 ]

2 голосов
/ 21 октября 2012

Ну, я реализовал ту же функциональность. Вот как я это реализовал.

  1. Создана пользовательская ячейка.

  2. Реализация действия кнопки только в классе ячеек.

  3. Объявите протокол (CustomCellDelegate) в ячейке и создайте свойство делегата (CustomCellDelegate) ячейки.

  4. In cellForRowAtIndexPath: метод вашего контроллера табличного представления устанавливает контроллер табличного представления (self) для делегирования свойства ячейки.

  5. Реализация делегатов в контроллере представления.

  6. Вызовите методы делегата из метода действия кнопки в ячейке.

Дайте мне знать, поняли ли вы это, или мне нужно опубликовать некоторый код.

0 голосов
/ 17 мая 2009

Убедитесь, что кнопка получает событие касания. Вы можете проверить это, переопределив

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event

или

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

Записать что-нибудь или установить точку останова на любом из них. Если ваша кнопка не получает касания (что, я думаю, не происходит), попробуйте установить exclusiveTouch в TableView и / или TableViewCell в NO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...