Несколько контроллеров просмотра для одного просмотра на iPhone - PullRequest
0 голосов
/ 22 ноября 2010

Вспомните почтовый клиент на базе iPhone. У вас есть три «состояния» с одинаковым пользовательским интерфейсом: новое сообщение, ответ и пересылка (игнорируя все остальные).

Мне бы хотелось иметь одно представление и иметь разные контроллеры представления, взаимодействующие с представлением. Учитывая, что представление построено в Интерфейсном Разработчике (с довольно многими IBOutlets и IBActions), каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Я полагаю, что то, что вы говорите, на самом деле не имеет смысла.

Тот же контроллер представления (т. Е., По сути, «ваше приложение») будет просто меняться между тремя потребностями.

Также- кажется маловероятным, что три вида будут абсолютно одинаковыми, поэтому создадим три разных вида / контроллера.

(Совершенно нормально, что у вас много «похожих» представлений - которые действительно являются просто отдельными представлениями, но онимогут быть графически похожими.)

Кроме того, весьма вероятно, что у вас может быть один общий вид (/ controller), и простое размещение внутри него будет определенным видом записи / чтения / любого вида (/ controller).

Надеюсь, это поможет!

1 голос
/ 22 ноября 2010

Один из способов сделать это может состоять в том, чтобы создать один контроллер представления, который содержит все соединения Interface Builder, а затем создать подкласс для просмотра контроллера несколько раз. В коде вы можете создать экземпляры всех подклассов, используя один и тот же nib с -initWithNibName: bundle: .

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

...