2012-05-21 4 views
0

У меня есть сложный вопрос. Как всем известно, Apple ясно говорит, что ONE UIViewController должен быть на экране в данный момент времени.Представление UIViewController из другого UIViewController

Но как насчет того, хотите ли вы реализовать поток регистрации, с крошечными видами, скажем ... 200px height ?.

Есть ли какой-либо реальной проблемой вы можете столкнуться. Если вы подключите UINavigationController (320x200px) в качестве подзапроса и нажмите несколько UIViewControllers ?.

Если я использую подход UIView, мне нужно будет воспроизвести поведение UINavigationController. Это неважно, но требуется дополнительное время.

Кроме того, UIView не должен иметь код бизнес-логики. Таким образом, rootViewController будет обрабатывать весь поток регистрации. Это нормально, но я бы скорее разделил его на несколько классов.

Любые предложения будут очень желанными. Спасибо заранее!

ответ

3

Вы должны заглянуть в новый контейнер ViewControllers. От Документов Apple:

, реализующего Контейнер View Controller

В прошивкой 5.0 и выше, пользовательские UIViewController подклассы могут также выступать в качестве контроллеров отображения контейнера. Контроллер представления контейнеров управляет представлением содержимого других контроллеров представлений, которыми он владеет, также известных как его контроллеры дочерних представлений. Представление ребенка может быть представлено как есть или в сочетании с представлениями, принадлежащими контроллеру представления контейнера.

Смотрите также https://developer.apple.com/videos/wwdc/2011/?id=102

+0

СПАСИБО! Я не знал об этом новом API: «addChildViewController». –

2

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

+0

Может быть, я мог бы просто инкапсулировать всю логику в «SignupController» ... и контейнер ViewController бы просто передать все к этому объекту. Какая реальная боль в шее - это необходимость тиражирования кода UINavigationController ... я имею в виду, что он уже написан, но вам нужно переопределить его для работы с представлениями !. –

+0

Вот почему я предлагаю этот подход, у вас уже есть все настроенное, и все, что вы делаете, это прокрутка. Учитывая, что это только то, что показано, что изменения. Вы можете сохранить состояние в контроллере и просто переместить представление, чтобы показать, что вы хотите. – 8vius

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