Дизайн приложения: UITabBarController в UINavigationController - PullRequest
1 голос
/ 23 июня 2010

У меня есть очень специфический дизайн приложения, который я пытаюсь выяснить, как создать с iOS 4.

Вот как это работает:

  1. Пользователь выбирает установленный набор данных или запускает загрузку набора данных.
  2. Пользователь предоставляет ключ для расшифровки набора данных.
  3. Отображается панель вкладок с различными параметрами поиска для просмотра данных. На панели вкладок больше запросов, чем умещается, поэтому есть пункт Больше и кнопка Изменить. (Спасибо, Apple!)
  4. Поиски предоставляют различные опции, некоторые требуют дополнительного экрана для настройки.
  5. После того, как результат поиска коснулся, пользователь видит детали. Обычно они могут глубже влиять на результат.
  6. Панель вкладок остается видимой, когда пользователи просматривают детали, что позволяет им начать поиск другого типа. Нажатие на поиск возвращает их к шагу 3.
  7. Если в любое время устройство переходит в спящий режим, данные должны быть заблокированы. Это жесткое требование, несмотря на все усилия по его устранению. Итак, на данный момент я возвращаюсь к шагу 2.

Я реализовал это в iPhone OS 3.1 с UINavigationController для шагов 1 и 2. Приложение нажимает UITabBarController с каждой вкладкой, представленной UINavigationController для шага 3, скрывая навигацию на внешнем контроллере , Затем пользователь работает в этом UITabBarController. Для блокировки я просто выталкиваю контроллер вкладок из контроллера навигации.

В основном это работает в iPhone OS 3.1, но оно хрупкое и хакерское. Не было никакого хорошего способа изменить набор данных, но пользователь мог просто закрыть приложение. С iOS 4 этого обходного пути нет! Единственный вариант, который я вижу, - это вернуться к шагу 2 после supendnd / resume, что будет ужасным многозадачным опытом.

Как мне это сделать?

  1. Вкладки не имеют смысла, пока набор данных не будет открыт и разблокирован.
  2. Мне (и моим пользователям) очень нравится один клик (независимо от глубины), чтобы начать новый поиск.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...