У меня есть общая функциональность, к которой я должен получить доступ со всех экранов моего приложения: правильный объект кнопки панели и связанное действие.
Чтобы не повторить код, который я хотел бы настроить, это в пользовательском UIViewController и иметь все мои контроллеры представления наследовалось ему.
- (void)viewDidLoad {
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(lightsCamera)];
self.navigationItem.rightBarButtonItem = rightBarButton;
}
- (void)lightsCamera {
…
}
Однако у меня есть много UITableViewControllers однако, и я хотел бы знать, возможно ли для них наследовать функциональность также?
Достаточно тривиально воссоздать собственный UITableViewController
из собственного подкласса UIViewController
.
Контроллер должен иметь свойство UITableView
, которое также имеет значение его свойства view
, установить правильные маски изменения размера, установить себя в качестве делегата таблицы и источника данных и не забыть мигните индикаторы полосы прокрутки в -viewDidAppear:
, и вы более или менее поняли.
Подробнее здесь .
Если вы не добавляете никаких новых атрибутов в контроллер представления, вы можете реализовать два метода в категории на UIViewController, и все подклассы унаследуют его. по умолчанию.