У меня есть очень специфический дизайн приложения, который я пытаюсь выяснить, как создать с iOS 4.
Вот как это работает:
- Пользователь выбирает установленный набор данных или запускает загрузку набора данных.
- Пользователь предоставляет ключ для расшифровки набора данных.
- Отображается панель вкладок с различными параметрами поиска для просмотра данных. На панели вкладок больше запросов, чем умещается, поэтому есть пункт Больше и кнопка Изменить. (Спасибо, Apple!)
- Поиски предоставляют различные опции, некоторые требуют дополнительного экрана для настройки.
- После того, как результат поиска коснулся, пользователь видит детали. Обычно они могут глубже влиять на результат.
- Панель вкладок остается видимой, когда пользователи просматривают детали, что позволяет им начать поиск другого типа. Нажатие на поиск возвращает их к шагу 3.
- Если в любое время устройство переходит в спящий режим, данные должны быть заблокированы. Это жесткое требование, несмотря на все усилия по его устранению. Итак, на данный момент я возвращаюсь к шагу 2.
Я реализовал это в iPhone OS 3.1 с UINavigationController
для шагов 1 и 2. Приложение нажимает UITabBarController
с каждой вкладкой, представленной UINavigationController
для шага 3, скрывая навигацию на внешнем контроллере , Затем пользователь работает в этом UITabBarController
. Для блокировки я просто выталкиваю контроллер вкладок из контроллера навигации.
В основном это работает в iPhone OS 3.1, но оно хрупкое и хакерское. Не было никакого хорошего способа изменить набор данных, но пользователь мог просто закрыть приложение. С iOS 4 этого обходного пути нет! Единственный вариант, который я вижу, - это вернуться к шагу 2 после supendnd / resume, что будет ужасным многозадачным опытом.
Как мне это сделать?
- Вкладки не имеют смысла, пока набор данных не будет открыт и разблокирован.
- Мне (и моим пользователям) очень нравится один клик (независимо от глубины), чтобы начать новый поиск.