Создание подкласса класса UIViewController - PullRequest
3 голосов
/ 12 июля 2011

Мое приложение имеет UITabBar. Большинство вкладок имеют схожую функциональность, хотя и отличаются по-разному.
Чтобы избежать дублирования кода, я хотел бы создать класс (BaseViewController), который обрабатывает аналогичные функции, и использовать его подклассы (FirstViewController, Second и т. Д.) Для управления уникальными функциями.

Как лучше всего это сделать?
Одна проблема, которую я рассматриваю, заключается в том, что, если я создаю xibs и контроллеры представления, как мне подключить элементы в xib к базовому контроллеру представления?

                   > FirstTabViewController
BaseViewController > SecondTabViewController
                   > ThirdTabViewController

Ответы [ 4 ]

4 голосов
/ 12 июля 2011

Если BaseViewController имеет свойства IBOutlet, они будут вести себя точно так же в унаследованном классе в Интерфейсном Разработчике. Все, что вам нужно сделать, это перетащить ваши соединения.

2 голосов
/ 12 июля 2011

Вы также можете заставить свой базовый класс создавать вещи для вас программно. Например. Кнопки панели навигации / фоновые изображения.

2 голосов
/ 12 июля 2011

FirstTabViewController, SecondTabViewController и др. будет наследовать выходы и действия BaseViewController, поэтому вы будете подключать элементы пользовательского интерфейса к своим подклассам так же, как к базовому классу.

1 голос
/ 12 июля 2011

По сути, вам нужно создать подкласс UIViewController, который будет вашей базой. Мы назовем это MyBaseVC.

Далее вы создадите остальные три класса контроллера представления (MyVC1, MyVC2, MyVC3) так же, как вы это делали в первый раз. В своих заголовочных файлах замените UIViewController на MyBaseVC. Теперь они будут подклассом MyBaseVC.

Затем в инспекторе удостоверений вашего файла Interface Builder вы установите для настраиваемого класса любого контроллера представления, который вы создаете, значение MyVC1, MyVC2, MyVC3

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...