Лучший подход к iPhone для проекта - PullRequest
0 голосов
/ 27 мая 2011

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

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

Поэтому, когда приложение запускается,На вкладке не выбрана ни одна опция, кроме основного.Когда выбрана опция панели вкладок, на ее верхней панели должна отображаться кнопка возврата к основному виду.Когда нажата кнопка «Назад», основной экран снова отображается без выбранной опции панели вкладок.

Какой подход выбрать?

Надеюсь, это имеет смысл.

Спасибо.

Ответы [ 4 ]

1 голос
/ 27 мая 2011

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

0 голосов
/ 27 мая 2011

Вы можете добавить основной вид в качестве другой вкладки.

ИЛИ

Вы представляете основной вид модально, когда приложение запускается поверх представлений панели вкладок.

ПервыйЭта опция будет использоваться чаще, если представление содержит тот же вид содержимого, что и вкладки, например, если приложение представляет собой интернет-магазин, вкладками будут Категории, Поиск и Недавно добавленные, при этом «основной вид» называетсяДомашняя страница (показывает предложения или что-то).(Таким образом, все представления / вкладки будут отображать товары в магазине)

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

0 голосов
/ 27 мая 2011

Во-первых, я думаю, вам следует пересмотреть вопрос о том, чтобы предоставить вашему главному виду собственную вкладку.Таким образом, пользователю легко вернуться к этому экрану.НО, если вам ВСЕ ЕЩЕ не нравится эта идея, читайте дальше ...

У UITabBarController есть неприятный побочный эффект: он не может быть удален после создания (даже если вы задерживаете его создание, создавая его программно).

SO ...

Вариант 1. Сделайте ваш MainView подпредставлением modalPresentation, отображая его в верхней части одного из представлений на панели вкладок (скрывая вкладки, пока вы не будете готовы)чтобы показать их снова).

Вариант 2: Предоставить подпредставление для вашей первой вкладки a ...

mySubViewController.hidesBottomBarWhenPhed = YES;

Это приведет к исчезновению UITabBarControllerвременно (только в этом представлении, пока вы не будете готовы снова показывать вкладки).

Оба варианта кажутся мне немного беспорядочными, но они возможны.Полагаю, зависит от того, насколько хорошо вы их выполняете.

Надеюсь, это поможет!

0 голосов
/ 27 мая 2011

Вы, вероятно, должны прочитать Руководство по интерфейсу для человека , поскольку возможно, что они отклонят ваше приложение, если посчитают, что такая реализация с TabBarController вводит в заблуждение.

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

Лучшей альтернативой может быть использование UIToolBar внизу вместо панели вкладок, в котором три кнопки порождают модальные виды, которые затем можно отклонить, как вы предлагаете.

Помните, однако, что пользователи вашего приложения накопили знания о том, как приложения, как правило, должны ориентироваться, чувствовать и контролировать, поэтому вы должны тщательно подумать, прежде чем идти против этого.

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