насколько я понимаю, UIView - это визуальное представление View, и контроллер отвечает за это представление, верно?
Один контроллер представления обычно отвечает за всю иерархию представлений.Контроллер представления управляет «экраном» или, по крайней мере, областью связанного содержимого.
, и когда мы создаем экземпляр viewcontroller с initwithnibname, мы программно присоединяем некоторое представление к некоторому контроллеру, другими словамимы говорим контролеру, что он отвечает за рисование этого представления да?
Нет - представление должно знать, как рисовать себя.Контроллер представления может указать представлению , что нарисовать, но представление должно знать, как отобразить это в текущем графическом контексте.
, если мы не инициируем его с помощью nibнет, он находит перо автоматически или нет?
Может.Если вы передадите nil для имени и пакета, UIViewController попытается найти перо, совпадающее с именем класса контроллера представления.Однако вы можете переопределить -loadView
для программного создания собственных представлений, если вы предпочитаете это делать.
а как насчет функции presentModalViewController?он получает параметр viewcontroller и отображает представление, или я не понимаю его значения?
Контроллер представления, представленный модально, все еще ответственен за его иерархию представления.-presentModalViewController:
действительно имеет дело с отношениями между контроллерами представления - как представление контроллера представления перемещается на экран, и что происходит, когда это делается.
, а также возможно ли сделать представление безXIB-файл, только в viewcontroller и после его показа?
Да, вы можете это сделать, если хотите.Каждое представление имеет инициализатор -initWithFrame:
, который можно использовать для инициализации представления, хотя некоторые представления предоставляют другие параметры.Например, в UIButton есть метод +buttonWithType:
, который можно использовать для создания кнопки.