Вы правы в том, что xib-файл может позволить связать представление с его контроллером представления.
Теперь MainWindow.xib содержит основной UIWindow
для вашего приложения (по крайней мере).UIWindow
не является UIView
и не нуждается в UIViewController
.
С другой стороны, вы можете создать любой объект, который вам нравится, внутри MainWindow.xib, поэтому вы также можете иметь *Там 1009 *, который вы затем добавляете к экземпляру UIWindow
, и соответствующий ему UIViewController
.
Если вы подумаете о дополнительных символах xib, то с ними произойдет то, что они определяют UIView
, идополнительно также укажите тип «Владелец файла», который обычно UIViewController
и создается при загрузке xib.
В этом смысле MainWindow.xib, хотя и не требует UIViewController
, все же нуждается в владельце файла,и это UIApplication
синглтон.Поскольку вы не можете ни изменить, ни извлечь класс из UIApplication
, способ взаимодействия с экземпляром UIWindow
осуществляется через делегата UIApplication
.
Помните, что MainWindow.xib играет особую роль, в том числе и в файле info.plist.Вы можете обойтись без него (удалив соответствующую запись из info.plist) и просто объявить делегата своего приложения при вызове UIApplicationMain
из main.c.В этом случае ни делегат приложения, ни UIWindow не будут созданы с помощью механизма xib;вам нужно будет создать UIWindow
от вашего делегата приложения applicationDidFinishLaunching
.