почему "присутствует модальный контроллер вида"?

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

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

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

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

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

3 ответов


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

Pls ссылаются почему это код использует presentModalViewController? (не pushViewController) и


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

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

Они также говорят ,чтобы " сделать модальные задачи Случайные и простые":

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

модальность наиболее уместна, когда:

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

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

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

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


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

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

Модальные Контроллеры Вида