3

Это скорее философский вопрос, чем что-либо, поэтому дайте мне свои мысли.UITabBarController UINavigationController Design Advice

Документация iPhone SDK указывает, что вы можете иметь контроллер панели вкладок, содержащий контроллер навигации, но вы не можете иметь контроллер навигации, содержащий контроллер панели вкладок. Кажется, что есть моменты, когда вам может понадобиться организовать представления в представлении, которое является частью стека контроллера навигации в табличном виде. Это необоснованно?

Я принимаю то, что Apple диктует в этих областях как Евангелие, поскольку HIG действительно предоставляет лучшие практики, которые, как представляется, показывают путь наименьшего сопротивления (я уверен, что есть исключения). Однако в области панели вкладок я не уверен, что это связано с дизайном. Возможно, это очевидно для других, но я не могу придумать, почему вы не разрешаете табуляции как ничего, кроме контроллера уровня корневого уровня.

Что вы все думаете или знаете? Какой конструктивный недостаток это создаст? Как бы вы решили эту проблему, чтобы получить табличное представление представлений в представлении? Нужно ли мне переосмыслить весь дизайн?

Спасибо.

ответ

1

Я вижу, откуда они идут, с точки зрения дизайна. Таберы чувствуют себя неподвижными, постоянными, где navbars чувствуют себя динамично и изменчиво. Таким образом, вкладка, содержащая динамический контент, имеет смысл, тогда как одно место в динамической иерархии навигационного стека, содержащее панель вкладок, привязанное к нижней части экрана, не кажется правильным. Реализация Three20 справляется с этим так, что имеет больше смысла, закрепляя вкладки под панелью навигации, чтобы они больше походили на то, что они являются частью этого места в стеке навигации.

Сказав, что Tweetie делает свою собственную панель вкладок, если я правильно помню, без UITabbarController, чтобы обойти эту деталь в рекомендациях пользовательского интерфейса, и она полностью работает с точки зрения взаимодействия.

0

Я думаю, что контроллер панели вкладок предназначен для навигации вокруг приложения, если он используется. Если контроллер nav содержит контроллер табуляции, вкладки будут переключаться всякий раз, когда вы переходите в другое место, что может смущать пользователей, привыкших использовать их в других приложениях. Я думаю, что это классная идея, но яблоко может не чувствовать себя одинаково.

1

Короткий ответ заключается в том, что пользователь должен будет ввести UITabBars в контроллер nav. Приложение, безусловно, не будет вести себя так, как ожидали бы большинство пользователей. Но это просто UITabBar, а не концепция дизайна вкладок в целом. Вкладки внутри навигационного контроллера должны, по моему мнению, идти вверху, а не внизу, как и UITabBar.

Существует несколько различных способов сделать это.

Я сделал «вкладки» внутри контроллера просмотра навигатора, имея первую строку в виде таблицы, имеющую сегментированный сборщик. (См. Приложение HangTime в магазине приложений). Я думаю, что это работает очень хорошо, но они не являются «вкладками».

Joe Hewitt, парень, который написал приложение для Facebook, решил эту проблему, создав свой собственный «панель вкладок» и контроллер, хотя он отображается совсем по-другому, чем UITabBar. Этот элемент доступен через инфраструктуру Three20 и библиотеку с открытым исходным кодом. Проверьте это: http://github.com/joehewitt/three20/tree/master