2012-05-01 5 views
1

У меня есть класс с именем BaseViewController, который наследует от UIViewController и класс BaseTableViewController, который наследует от UITableViewController. Оба эти класса имеют идентичную общую логику (т. Е. Обработку вращения, вспомогательные методы и т. Д.). Сейчас код просто дублируется в обоих. Я считал, что просто создаю класс ViewControllerHelper и выставил его как публичную собственность, но мне было интересно, есть ли более элегантные решения.UIViewController и UITableViewController общая логика

ответ

0

, если вам не нужны какие-либо общие Иварс/свойства, можно написать расширение для UIViewController

+0

Brilliant, превосходной идеей, мне не нужно никаких Ивар или свойства, только вспомогательные методы, так это прекрасно! – jjxtra

+0

Хммм. Что вы предлагаете, если кому-то нужны дополнительные свойства? Я думал об этой же проблеме. Композиция не кажется идеальной, так как нам придется писать обертки для всех общих методов. – jweyrich

+0

@ Расширение jonathan-cichon не может обеспечить реализацию, не так ли? В этом случае вы должны обеспечить такую ​​же реализацию в UIViewController и UITableViewController? – DavidLiu

0

Я бы создать общий класс, как BaseViewController с двумя инициализаторами:

initWithList: (для просмотра таблицы) и initWithSomething: для простого UIViewController материала. Каждый из этих инициализаторов загружал отдельные xibs (один с UITableView в качестве основного вида, другой - как простой UIView).

У вас будут одинаковые методы в каждом случае. И ему потребуется только реализовать протоколы UITableViewDelegate и UITableViewDataSource.

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