2010-06-02 3 views
0

Мне нужно представить линейный процесс (думаю, мастер) в приложении для iPad.Каков правильный способ представления линейного процесса в CocoaTouch (UIKit)?

В принципе я мог бы использовать UINavigationController и просто продолжать нажимать новые контроллеры для каждого шага процесса. Но это кажется довольно неэффективным, поскольку процесс, который я моделирую, не имеет понятия навигации назад, поэтому все предыдущие взгляды бесцельно остаются вокруг и используют ресурсы.

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

Кроме того, существует необходимость анимированного перехода между видами. (У меня это работает в данный момент через beginAnimations/commitAnimations)

ОБНОВЛЕНИЕ: Чтобы уточнить мой вопрос: я знаю, что у мастеров обычно есть кнопка возврата. Это не то, что я здесь строил.
Процесс, который должен быть показан, возможно, имеет много шагов (возможно, до 30-40 в некоторых случаях), поэтому я действительно не хочу иметь 39 устаревших контроллеров вида, занимающих RAM.

+0

Даже дизайн макетов на рабочих столах позволяет вам перемещаться назад через стек, поэтому ваш дизайн особенно нестандартен. Если вы считаете, что есть вероятность, что ваши пользователи захотят переместиться «назад», вы должны перепроектировать. –

+0

То, что я создаю, не мастер, я использовал это только для объяснения. В этом процессе определенно нет обратной навигации, это один из основных критериев проектирования приложения. – UloPe

ответ

0

Не могли бы вы установить backBarButtonItem каждого вида контроллера navigationItem на номер nil, чтобы вы не открыли кнопку «Назад»?

+0

Это может сработать, чтобы скрыть панель NavigationController, но, как я уже писал выше, концепция представления стеков друг на друга не подходит мои потребности, так как мне никогда не нужно возвращаться к предыдущему виду. – UloPe

+0

@UloPe правый. Мое предложение - полностью удалить кнопку «Назад». Таким образом, вы не можете вернуться к другому виду. –

+0

Я понимаю это, но у меня все еще есть стек старых контроллеров представлений, которые я больше не буду показывать «висеть» в фоновом режиме. – UloPe

0

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

+0

Интересная идея. Я попробую это. – UloPe

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