2009-04-14 1 views
3

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

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

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

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

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

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

+0

вероятно должны маркировать с iPhone в будущее... – amattn

ответ

3

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

Как правило, один UIViewController обслуживает один UIView. (Следовательно, свойство «вид» на UIViewController классе.)

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

[self.navigationController pushViewController:secondViewController animated:YES]; 
Смежные вопросы