Разница между Window и ViewController - PullRequest
1 голос
/ 06 июля 2011

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

Ответы [ 2 ]

1 голос
/ 06 июля 2011

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

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

1 голос
/ 06 июля 2011

Обычно у вас есть один экземпляр UIWindow, в котором размещены все ваши UIViewControllers и UIViews как часть иерархии представления.Вот почему UIApplication имеет вызов [UIApplication sharedApplication].keyWindow для доступа к «корневому» представлению.

Так, например, у вас может быть следующий стек:

[UIApplication sharedApplication].keyWindow -> MyView-> MyOtherViewController

Для получения дополнительной информации ознакомьтесь с документацией для разработчиков по UIWindow и UIViewController , которые предоставляют отличное объяснение различий.

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