2013-09-25 1 views
0

У меня есть UIButton внутри UITableViewCell, который хранится в таблице, которая принадлежит моему подклассу UITableViewController. Я пытаюсь использовать функцию пар target/actions, где он может пузырить события до своего следующего ответчика, пока не найдет ответчика, который может обрабатывать событие, но я не получаю, чтобы это работало. Некоторый код:UIControl Целевое мероприятие, не протекающее по цепочке ответчиков

В моей ячейке таблицы, нужно настроить кнопку так:

[self.button addTarget:nil action:@selector(doThing) forControlEvents:UIControlEventTouchUpInside]; 

Кнопка добавляется в камеру, а ячейка отображает только штрафом в Tableview. Поскольку я прошел nil в цель, это событие должно пузыриться до тех пор, пока оно не достигнет моего View Controller, который реализует -doThing, но он не вызывается.

Я переопределяю - (BOOL)canBecomeFirstResponder и возвращаю YES как в подклассе ячеек, так и в моем подклассе контроллера, но даже в сочетании, он все еще не работает.

Я отлаживаю, чтобы видеть, что и кнопка, и контроллер вида находятся в одной цепочке отклика, но каким-то образом это событие, похоже, не иссякает.

Любые идеи?

+0

Почему так сложно? – Injectios

+0

Рассматривали ли вы создание добавления сеттера для следующего ответчика, которое может отображаться в виде таблицы, и ячейка может вернуться в 'nextResponder'? – tapi

+0

@tapi в этот момент я мог бы просто передать блок или установить делегат. – jbrennan

ответ

0

Что говорит клетка, что его следующий ответчик? Вы уверены, что он не пузырится до UITableView, а не UITableViewController?

+0

Следующий ответчик ячейки - это частный частный класс Apple. Табличное представление ** также ** в цепочке ответчиков. – jbrennan

2

Селектор для сообщения о действии нуждается в параметре. Попробуйте называть его doThing: как в коде addTarget:, так и в обработчике контроллера вида.

+0

Это решение. –

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