UITabBarController UINavigationController Советы по проектированию - PullRequest
3 голосов
/ 08 августа 2009

Это больше философский вопрос, чем что-либо еще, поэтому дайте мне свои мысли.

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

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

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

Спасибо.

Ответы [ 3 ]

1 голос
/ 10 августа 2009

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

Есть несколько способов сделать это.

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

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

1 голос
/ 24 августа 2009

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

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

0 голосов
/ 08 августа 2009

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

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