2010-10-11 2 views
3

Когда я создаю новый UIViewController в xcode, он предлагает сделать мне связанный nib для интерфейса. Однако, когда я создаю UIView, это не так. Если мое понимание MVC верное, то представлениями должны быть части, которые содержат элементы интерфейса (например, nib), в то время как контроллеры представлений - это части, которые привязывают функциональность к представлениям, которыми они управляют.Почему у UIViewControllers есть xib-файлы и UIViews нет?

Я уверен, что смогу заставить его работать вместе в любом случае, так что это скорее исследовательский вопрос.

Это похоже на случай, когда мне не хватает фундаментального понимания того, как эти две части должны использоваться. Что мне не хватает?

ответ

0

Ответ, который я получил в конце концов, что удовлетворил мой интерес был примерно так:

Работа контроллера зрения заключается в управлении иерархии видов. Интерфейс Builder - отличный инструмент для создания иерархий представления. Xcode предлагает создать .xib при создании нового контроллера представления, потому что есть вероятность, что вы захотите загрузить представления контроллеров из .xib.

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

0

Поскольку UIView обычно не используется таким образом. Однако How do I associate a nib (.xib) file with a UIView?

+0

Нет, это мой вопрос. * Почему * он не используется таким образом? – Nick

+0

Поскольку UIViewController уже заполняет эту цель. – Mantar

+0

Вы добираетесь туда. Разработайте с целью обоих этих объектов и почему мое предположение о их назначении неверно. – Nick

0

У меня было такое замешательство. В основном (согласно MVC) представление содержится внутри контроллера. В iPhone это означает, что UIViewController имеет свойство «view», которое является экземпляром UIView.

Файл XIB (и это часто не упоминается) представляет собой сериализованный экземпляр UIView. Это примерно XML-формат, представляющий UIView со всеми его последующими представлениями. Поэтому, когда вы создаете UIViewController, UIView создается в виде XIB и ограничен этим контроллером.

Новый UIView поэтому не имеет XIB, потому что это по сути то же самое ...

Смежные вопросы