2016-03-24 5 views
0

У меня есть несколько подклассов UITableViewController, которые содержат ячейки типа myCell (подкласс UITableViewCell). Эти ячейки содержат UITextField s и являются делегатами для этих текстовых полей. Однако в редких случаях я хотел бы уловить некоторые вызовы делегатам в tableViewController (в частности, textFieldShouldBeginEditing:).Переслать вызов делегату во время выполнения

Есть ли разумный способ достичь этого без подкласса моей ячейки?

ответ

0

Оцените свой собственный класс myCell и его собственный протокол, а также имущество delegate.

Затем сделайте контроллер представления таблицы делегатом для каждой создаваемой ячейки. Затем контроллер табличного представления может реализовать методы протокола ячейки.

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

+0

Я получаю это, но мне бы хотелось, чтобы призывы к делегату зависели только от самого tableView. т.е. я ищу код, в котором ячейка будет полностью агностикой, чтобы ее методы делегирования были переопределены или нет. Возможно, я просто слишком много спрашиваю. – vib

+0

1) Вы не можете этого сделать. 2) Вы не должны пытаться это сделать. Это слишком хрупко. Сделайте это явным. Тогда это четкое определение обязанностей. 3) Хорошо, вы можете это сделать, но это будет сделано путем подклассификации ячейки. Таким образом, либо поддерживайте подклассы, либо используйте протокол. – rmaddy

+0

Хорошо для 1). Около 2), я не уверен. Если моя ячейка используется 100 раз и что есть 2 места, где я хочу это сделать, то я создаю очень много кода для очень мало. Или мой дизайн полностью ошибочен с самого начала. – vib