Я следую руководству по использованию Interface Builder из главы 2 «Разработка приложений для iPhone SDK» Здзярского. Идея состоит в том, чтобы создать очень простое приложение, которое состоит из контроллера панели вкладок, у которого есть две кнопки, каждая из которых связана с различным объектом представления (и каждый объект представления в своем собственном соответствующем файле .xib). В итоге я получаю пустое окно и некоторый код, который значительно отличается от того, что в книге указано, что я должен иметь.
Я подозреваю, что пропущенный шаг, но указанные шаги разбросаны по главе экспликации, поэтому я не уверен на 100%, что я что-то не пропустил. Вот краткое изложение того, что шаги кажутся:
- Создайте новое «оконное приложение» с именем «Пример».
- Откройте MainWindow.xib в Интерфейсном Разработчике и сделайте следующее:
а) Выберите значок «Окно» в окне документа, откройте инспектор, установите различные посторонние свойства.
б) Перетащите «Контроллер панели вкладок» в окно документа.
c) Измените названия двух вкладок на «Последние» и «История».
г) Сохранить MainWindow.xib
- Создайте новый шаблон IB "Cocoa Touch View". Добавьте к нему «табличное представление». Сохраните его как Recents.xib.
- Аналогичным образом создайте еще один шаблон IB "Cocoa Touch View". Добавьте к нему «текстовое представление», сохраните как History.xib.
- Вернитесь к MainWindow.xib, отредактируйте каждую вкладку в контроллере панели вкладок в Инспекторе так, чтобы «Имя пера» соответствовало соответствующему файлу .xib, созданному на шаге 3 (для последних) и шаге 4 (для История).
- Добавьте Recents.xib и History.xib к проекту «Пример».
На данный момент в книге сказано, что если я посмотрю на ExampleAppDelegate.h, я должен увидеть ссылки на объекты Interface Builder в моем коде, такие как:
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet RootViewController *viewController;
Когда я на самом деле смотрю на файл, я вижу только первую (UIWindow) строку выше. Линия RootViewController отсутствует.
Точно так же в книге говорится, что когда я загляну внутрь ExampleAppDelegate.m, я должен увидеть некоторые директивы синтеза:
@synthesize window;
@synthesize viewController;
Но опять же, я вижу только строку, относящуюся к окну.
И, конечно же, если я нажму «Build and Go», то в симуляторе я вижу пустое окно.
Одна из вещей, которые я заметил при прохождении этого процесса, заключалась в том, что я не был проинструктирован перетаскивать контроллер панели вкладок из шага 2b непосредственно в отображаемый объект Window в конструкторе интерфейса. В любом случае я попытался сделать это и обнаружил, что мне не разрешено (и на самом деле, контроллеры любого вида не приветствуются непосредственно в окне). Это показалось мне странным - я заметил, что перетаскивание объекта View в окно выглядит нормально. Но так как представления не могут содержать контроллеры вида, я не могу понять, как вы когда-либо предполагали добавить контроллер вида внутри иерархии, содержащейся в окне.
Какие шаги и / или знания мне не хватает здесь?