2014-11-08 3 views
2

Я создал подкласс UITableViewController с именем CalendarTableViewController.h и .m. Он отображает список событий в указанном диапазоне (например, все события в 2014 году). Я хотел бы иметь еще два контроллера вида (месяц и день) и складывать их поверх первого контроллера представления.Могу ли я подклассировать пользовательский контроллер вида

Поскольку все три диспетчера представлений имеют схожие свойства и поведение, я хотел бы подклассировать свой настраиваемый контроллер представлений. Это возможно?

У меня около года развивается с Xcode, поэтому я могу пропустить что-то глупое просто. Но все, что я знаю, - это подкласс UITableViewController. Как вы подклассифицируете свой собственный контроллер представлений?

Буду признателен, если вы могли бы поделиться своей мудростью. Yoshi

+0

Конечно, вы можете. Когда вы добавляете новый контроллер через пункт меню «Новый файл», просто поставьте CalendarTableViewController в поле «подкласс». – rdelmar

ответ

2

В мире объектно-ориентированного программирования объекты классифицируются в иерархические группы. Вместо того, чтобы использовать разные термины для разных иерархических уровней, таких как род или вид, объекты просто организованы в классы. Точно так же, как люди наследуют определенные характеристики как членов семьи, класс может быть установлен на наследование функциональности из родительского класса.

Когда один класс наследуется от другого, ребенок наследует все поведение и свойства, определенные родителем. Он также имеет возможность либо определить свое собственное дополнительное поведение и свойства, либо переопределить поведение родителя.

Короткий рассказ, да, вы можете и вы должны создать подкласс (ы) в таких случаях. Это, как вы делаете в Objective-C в файле .h (в новом классе)

@interface MySecondController : CalendarTableViewController { 
    } 

В Swift

class MySecondController: CalendarTableViewController { 
     // subclass definition goes here 
    } 

Я надеюсь, что это помогает

+0

Я узнал, что я, возможно, сделал не так. Я вручную переименовал CalendarTableViewController в MasterTableViewController и попытался сделать MySecondController дочерним по отношению к MasterTableViewController. Но, когда я иду File> New> File> Cocoa Touch Class, он не позволит мне сделать подкласс MasterTableViewController. Xcode по-прежнему распознает старое имя (CalendarTableViewController) и делает дочерний класс успешным. Что я сделал неправильно при переименовании родительского контроллера? – yoshitech

+0

+1 за усилие (вот что сказал бы мой учитель, я думаю). –

+0

Ничего. Я понял. Я оставил «CalendarTableViewController» в некоторых файлах .h-файлов. – yoshitech

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