понимание uiview и uiviewcontroller - PullRequest
1 голос
/ 22 декабря 2011

Пожалуйста, помогите мне понять концепцию UiView и UIViewController, я знаю, что он работает как шаблон mvc, и, насколько я понимаю, UIView - это визуальное представление View, и контроллер отвечает за это представление, верно? и когда мы создаем экземпляр viewcontroller с initwithnibname, мы программно присоединяем некоторое представление к некоторому контроллеру, другими словами, мы говорим контролеру, что он отвечает за рисование этого представления, да?

если мы не инициируем его с помощью nib nae, он автоматически находит nib или нет?

это вложение также возможно через Interface Builder, я прав?

а как насчет функции presentModalViewController? он получает параметр viewcontroller и отображает представление, или я не понимаю его значения? а также возможно ли сделать представление без xib-файла, только в viewcontroller и после его показа?

Ответы [ 2 ]

4 голосов
/ 22 декабря 2011

насколько я понимаю, UIView - это визуальное представление View, и контроллер отвечает за это представление, верно?

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

, и когда мы создаем экземпляр viewcontroller с initwithnibname, мы программно присоединяем некоторое представление к некоторому контроллеру, другими словамимы говорим контролеру, что он отвечает за рисование этого представления да?

Нет - представление должно знать, как рисовать себя.Контроллер представления может указать представлению , что нарисовать, но представление должно знать, как отобразить это в текущем графическом контексте.

, если мы не инициируем его с помощью nibнет, он находит перо автоматически или нет?

Может.Если вы передадите nil для имени и пакета, UIViewController попытается найти перо, совпадающее с именем класса контроллера представления.Однако вы можете переопределить -loadView для программного создания собственных представлений, если вы предпочитаете это делать.

а как насчет функции presentModalViewController?он получает параметр viewcontroller и отображает представление, или я не понимаю его значения?

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

, а также возможно ли сделать представление безXIB-файл, только в viewcontroller и после его показа?

Да, вы можете это сделать, если хотите.Каждое представление имеет инициализатор -initWithFrame:, который можно использовать для инициализации представления, хотя некоторые представления предоставляют другие параметры.Например, в UIButton есть метод +buttonWithType:, который можно использовать для создания кнопки.

1 голос
/ 22 декабря 2011

Документация Apple в этом отношении превосходна.Прочитайте Руководство по программированию контроллера View для начала.

Вам не нужен файл nib / xib для ваших видов.Вы можете создавать их программно.

...