2010-06-10 4 views
2

Я знаю, что файлы nib являются сериализованными объектами, и у них есть владелец, выходы для установления соединений. Используя шаблон окна XCode Navigation, я создал приложение, которое в своем порядке создало 2 файла nib - MainWindow и SecondView. Я не могу понять, как MainWindow ссылается на SecondView, нет связи между этими двумя, насколько я могу видеть. Владельцем SecondView является UIViewController, а в MainWindow есть вкладка навигации, которая также является UIViewController. Но как они связаны в IB я не могу понять ...Puzzled with nib files

Кроме того, я не понимаю, кто instanciating MainWindow в объект владелец и где этот объект является хранится, где переменная, которая является UIApplication myApp = [[UIApplication alloc] init].

Этот вопрос самонастраивается: UIApplicationMain и иметь переменную экземпляра Мне нужно создать выход где-нибудь.

Если я создаю 10 файлов nib с владельцем UIViewController, кто будет запускать их десериализацию?

Если какой-либо класс является владельцем файла nib, каковы основные обязанности этого класса? Это десериализация файла nib в память?

Извините за неорганизованные вопросы, я читал многочисленные статьи и документы о файлах nib, но это все еще запутывает.

ответ

1

MainWindow.xib загружается при запуске приложения.

Открыть MainWindow.xib. Убедитесь, что вы находитесь в режиме просмотра списка. Вы должны увидеть экземпляр UINavigationController. Внутри вы должны увидеть экземпляр UIViewController. Выберите экземпляр View Controller и посмотрите на панель Inspector. Вы должны увидеть, что у него есть свойство «Имя нити», которое установлено в «RootViewController». Таким образом, viewController будет искать и загружать нить «RootViewController» во время выполнения.

Таким образом, если вы создаете 10 наконечников, вы отвечаете за десериализацию, но интерфейс Builder имеет способы помочь вам сохранить маленькие миниатюры и управлять ими, упаковывая представления в отдельные файлы nib.

0

Я не уверен, что правильно понял все ваши вопросы. Но MainWindown (первичное окно) nib загружается, когда приложение загружается. Вы можете проверить это из info.plist вашего проекта. вы найдете там имя первичного файла nib. Когда первичный nib загружается во время загрузки приложения, владелец объекта является вашим экземпляром вашего приложения.

+0

Извините, что сбивает с толку, я знаю, что он загружается во время запуска приложения, но какой класс/часть кода запускает его загрузку? Единственный код в 'main', который может загрузить его, - это функция' UIApplicationMain', поэтому есть ли где-нибудь код внутри этой функции, который читает info.plist, а затем десериализует этот файл nib? – Pablo

+0

OK Эта часть понятна для меня после повторного чтения документа Apple. Загрузка основного ножа происходит в 'UIApplicationMain'. Тем не менее, я не могу получить ответ на первую часть моего вопроса - как «SecondView» мы связали с «MainWindow». – Pablo

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