UIViewКонтроллеры и UIViews ... как создать простое приложение - PullRequest
3 голосов
/ 15 апреля 2009

Я немного озадачен тем, сколько контроллеров мне нужно и когда я могу загрузить UIViews в один контроллер, вместо того, чтобы иметь два контроллера для двух отдельных UIViews.

Вот моя текущая ситуация. У меня есть простое приложение, которое получает информацию на начальном экране, а затем, основываясь на информации от пользователя (через UIPicker и текстовое поле), оно отображает анимацию сальто для нового представления, которое является одним из двух вариантов: ViewA или ViewB.

Прямо сейчас у меня есть корневой контроллер GenController.view, который загружается в UIWindow после запуска. Затем в GenController в методе ViewDidLoad я создаю экземпляр другого контроллера GetInfoController и вставляюSubview в self.view, который на данный момент self является исходным экземпляром GenController.

getInfoController принимает информацию, выполняет некоторую логику над записями пользователя и затем загружает экземпляр ViewAController или ViewBController соответственно.

ViewAController и ViewBController очень похожи, но просто имеют UIView, который выглядит немного по-разному. Взаимодействие пользователя с экраном будет таким же.

Мне кажется, что 1) GenController и GetInfoController должны быть одинаковыми, но я не уверен, как их интегрировать. Я загружаю GetInfoController непосредственно в окно UIWindow? Нужно ли что-то делать во ViewDidLoad тогда? 2) должен ли я иметь один viewXController вместо одного для ViewA и ViewB? ... как загрузить разные UIViews в один контроллер, основываясь на логике в GetInfo?

1 Ответ

3 голосов
/ 15 апреля 2009

Звучит так, как будто вы захотите использовать UINavigationController. Он поддерживает несколько UIViewController с и позволяет легко переключаться с одного на другой.

Как правило, один UIViewController поддерживает один UIView. (Отсюда свойство 'view' в классе UIViewController.)

В первом UIViewController, когда вы хотите переключиться на второй UIViewController, вы можете сделать что-то вроде:

[self.navigationController pushViewController:secondViewController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...