Как правильно представить линейный процесс в CocoaTouch (UIKit)? - PullRequest
0 голосов
/ 03 июня 2010

Мне нужно представить линейный процесс (мастер мышления) в приложении для iPad.

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 09 июня 2010

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

0 голосов
/ 03 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...