почему "присутствует контроллер модального вида"? - PullRequest
6 голосов
/ 25 апреля 2011

Просто интересно узнать об использовании контроллера модального вида.Когда и почему мы должны их использовать?Есть ли руководство?

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

   UINavigationController *navController = [[UINavigationController alloc] 
                                                 initWithRootViewController:addViewController];

    [self.navigationController presentModalViewController:navController 
                               animated:YES];

Есть ли функциональная причина для этого?Будет ли это работать, если мы просто добавим addViewController к self.navigationController?

Ответы [ 3 ]

13 голосов
/ 25 апреля 2011

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

Просьба указать почему этот код использует presentModalViewController?(не pushViewController) также

11 голосов
/ 25 апреля 2011

Да, есть рекомендации. Руководство по интерфейсу пользователя iOS говорит:

Используйте модальный вид, когда вам нужно предложить возможность выполнить отдельная задача, связанная с вашим основная функция приложения. модальный вид особенно уместен для многоэтапной подзадачи, которая требует Элементы пользовательского интерфейса, которые не принадлежат основной пользовательский интерфейс приложения все время.

Они также говорят «Делать модальные задачи случайными и простыми»:

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

Модальность наиболее подходит, когда:

Очень важно получить внимание. Задача должна быть выполнена (или явно отказались), чтобы избежать оставив данные пользователя в неоднозначное состояние. Люди ценят быть в состоянии выполнить Автономная подзадача в модальном вид, потому что смещение контекста ясно и временно. Но если подзадача слишком сложна, люди могут упустить из виду главную задачу, которую они приостановлено, когда они вошли в модал Посмотреть. Этот риск увеличивается, когда модальный вид на весь экран и когда он включает в себя несколько подчиненных видов или состояния.

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

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

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

1 голос
/ 25 апреля 2011

Из документации Apple

Модальные контроллеры представления предоставляют интересные способы управления потоком вашего приложения.Чаще всего приложения используют контроллеры модального представления в качестве временного прерывания для получения ключевой информации от пользователя.Однако вы также можете использовать модально представленные контроллеры представления для реализации альтернативных интерфейсов для вашего приложения в определенное время.

Модальные контроллеры представления

...