Событие целевого действия UIControl не проходит по цепочке респондентов

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

В своей ячейке таблицы я настраиваю свою кнопку следующим образом:

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

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

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

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

Любые идеи?


person jbrennan    schedule 25.09.2013    source источник
comment
Рассматривали ли вы возможность добавления установщика для следующего респондента, который может установить табличное представление, и ячейка может вернуться в nextResponder?   -  person tapi    schedule 26.09.2013
comment
@tapi в этот момент я мог бы просто передать блок или установить делегат.   -  person jbrennan    schedule 26.09.2013
comment
Согласен, Просто мысль. Это под iOS7? он ведет себя так, как рекламируется для меня на iOS6   -  person tapi    schedule 09.10.2013
comment
РЕДАКТИРОВАТЬ: цепочка респондентов правильная, но действия все еще не всплывают   -  person tapi    schedule 09.10.2013
comment
Второе редактирование: у меня это работает на iOS6, но не на iOS7. Он работал как с параметром отправителя, так и без него в селекторе. Время для радара.   -  person tapi    schedule 09.10.2013
comment
@tapi о, черт возьми, хороший улов. Да, это было только для iOS 7.   -  person jbrennan    schedule 12.10.2013


Ответы (2)


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

person matt    schedule 07.10.2013
comment
Это решение. - person Bob Spryn; 28.02.2014

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

person Senior    schedule 25.09.2013
comment
Следующим ответчиком ячейки является некоторый частный класс представления Apple. Табличное представление также находится в цепочке ответчиков. - person jbrennan; 26.09.2013