Понимание розеток в Интерфейсном Разработчике - PullRequest
1 голос
/ 01 декабря 2011

Я делаю упражнение, чтобы попытаться по-настоящему понять Interface Builder и Outlets.

Используя Xcode 4.0, я выбрал шаблон для Window Based Application.Затем я:

  1. Зайдите в Interface Builder и добавьте контроллер UINavigation.

  2. Установите контроллер оконного выхода RootView на контроллер навигации.

  3. Перейдите в AppDelegate.h, чтобы создать UINavigation Controller с именем navController и дать ему IBOutlet.

  4. Перейдите к AppDelegate.m в didFinishLaunchingWithOptions, чтобы установитьself.window.rootViewController to self.navController.

  5. Создайте новый UIViewController с именем FirstViewController вместе с файлом .xib.

Мой вопрос такой:Как установить контроллер корневого представления в выходе mainWindow.xib в качестве FirstViewController?Но что более важно, может ли кто-нибудь объяснить мне причину, по которой вы это делаете?

Другими словами, я бы хотел, чтобы FirstViewController был первым контроллером представления, который пользователь видит в моем приложении.И я хотел бы точно понять механику, которая стоит за этим.

Спасибо за помощь!

enter image description here

enter image description here

1 Ответ

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

интерфейс Bilder Outlets - это просто связь между графической частью вашей программы и вашим кодом. Другими словами, они объясняют, какой код управляет этим графическим объектом. Видите ли, target-c очень ориентирован на MVC. Файл .xib - это V (вид), розетка и ваш код, связанный с .xib этой розеткой - это C (контроллер). M (модель) должна быть где-то в вашем коде.

Теперь о контроллере корневого представления. Я предпочитаю реализовать это, как показано ниже: импортируйте ваш firstViewController в AppDeledate.h и внедрите navigationController:

#import "firstViewController .h"
@class firstViewController
...
UINavigationController *navigationController;
...
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

теперь, в interfacebuilder (mainWindow.xib), добавьте объект navigationController и свяжите его с внедренным свойством. Затем добавьте объект ViewController в этот навигационный контроллер, выберите этот объект ViewController и установите в инспекторах его класс firstViewController, а для файла xib - firstViewController. Наконец, в AppDelegate.m в didFinishLaunchingWithOptions установите self.window.rootViewController на self.navigationController. Вот и все.

...