Не обращая внимания на переходы/анимации и то, как все устроено за кулисами (что хорошо обсуждается в ответе aleph_null), единственное отличие, с которым сталкивается пользователь, — это возможность автоматически вернуться к предыдущему представлению с помощью панели навигации.
Если вы используете pushViewController
, вы автоматически получите кнопку «Назад» на панели навигации. Если вы используете presentModalViewController
, вы этого не сделаете, и, как правило, вам придется реализовать свои собственные элементы управления и/или обратные вызовы для обработки закрытия контроллера.
Концептуально модальный стиль представления обычно используется для атомарных задач, от которых вы не можете уйти (т. е. вы либо выполняете задачу, либо отменяете ее, и вы не можете делать что-либо еще в приложении, пока не выполните одно или другое).
Если вам интересно, почему такая разница, я не могу ответить. Лично я считаю, что фреймворки, предоставляющие унифицированный API для перехода с одного контроллера на другой (например, cocos2d или Android), имеют гораздо больше смысла.
person
aroth
schedule
08.11.2011