Ищите учебники в приложении iPhoneCoreDataRecipes - PullRequest
0 голосов
/ 24 июня 2009

Мне очень трудно понять, как представления загружаются и соединяются с помощью TabBarController в приложении iPhoneCoreDataRecipes.

Есть ли у кого-нибудь советы по изучению концепций, представленных в этом образце приложения Apple? Я читал другие статьи на сайте разработчиков Apple.

- (void)applicationDidFinishLaunching:(UIApplication *)application {
   recipeListController.managedObjectContext = self.managedObjectContext;
   [window addSubview:tabBarController.view];
   [window makeKeyAndVisible];
}

Мое понимание вышесказанного
Строка 2: заполнение списка контроллеров?
Строка 3: Добавление вспомогательного представления к представлению контроллера вкладок?

Если мое понимание строки 3 верно, где другие представления, Преобразование единиц, добавлены в tabcontroller?

Ответы [ 4 ]

2 голосов
/ 24 июня 2009

Контроллеру панели вкладок требуется список контроллеров представления. Я не видел этот конкретный образец, поэтому о нем может позаботиться первая строка. Однако обычно вы делаете следующее:

  1. Создание всех контроллеров представления:

    UIViewcontroller *viewControllerTab1 = ...
    UIViewcontroller *viewControllerTab2 = ...
    UIViewcontroller *viewControllerTab3 = ...
    
  2. Добавьте их в контроллер панели вкладок:

    tabBarController.viewControllers = 
      [NSArray arrayWithObjects:
         viewControllerTab1,
         viewControllerTab2,
         viewControllerTab3, 
         nil
      ];
    
  3. Затем вы добавили бы представление tabBarController в окно в качестве подпредставления, за которым следует окно makeKeyAndVisible (строки 2 и 3). Они не относятся к панели вкладок, они просто добавляют представление панели вкладок к основному представлению приложения, как и любой другой контроллер представления.

Вы также можете указать здесь детали UITabBarItem или просмотреть контроллеры. Вы должны сделать это здесь, чтобы у вас не возникало проблем с тем, что элементы панели вкладок не отображаются. И.Е.

viewControllerTab1.tabBarItem = [UITabBarItem init...]
1 голос
/ 24 июня 2009

На самом деле:

Строка 2: передает ссылку на managedObjectContext в recipeListController. ManagedObjectContext является структурой CoreData. Он содержит ссылку на постоянное хранилище (часто, но не всегда, файл на диске [SQLite]) и managedObjectModel (файл в проекте). Этот контекст позволяет вам делать запросы к вашей объектной модели, которая была сохранена в базе данных. (Так как этот пример - рецепты: «Получить все рецепты, для которых требуется ингредиент« Мука »). Но поскольку это не (строго говоря) прямой запрос к базе данных, возвращаемые« вещи »- это объекты, а не строки в recordSet. вы найдете ссылки на managedObjectContexts только в приложениях CoreData.

Строка 3: было объяснено выше. Это добавляет подпредставление в окно приложения, а затем назначает tabBarController.view этому подпредставлению. Предполагается, что tabBarController ранее был заполнен соответствующими viewControllers.

Надеюсь, это поможет.

0 голосов
/ 19 июля 2011

Я думаю, что вы ищете, это та же проблема, с которой я столкнулся, когда представление загружается в Интерфейсный Разработчик, а не код.

Итак, шаги:

1: открыть mainwindow.xib

2: установить режим просмотра на столбец

what the view mode select looks like

3: открыть контроллер панели вкладок и перейти вниз к элементу вкладки

enter image description here

4: установить класс идентичности

what the class should look like

Я продолжал пытаться подключить саму главную вкладку, но вам нужно быть более конкретным!

Надеюсь, это поможет!

0 голосов
/ 24 июня 2009

Этот код пахнет окном, и все контроллеры вкладок загружаются в NIB. К этому моменту все уже «подключено», и все, что он делает, это устанавливает подвид окна и делает его ключевым.

Это может помочь. Создайте новое приложение на основе вкладок в XCode и посмотрите, что оно делает. Он будет иметь как NIB-загруженные, так и определяемые кодом представления, чтобы вы могли увидеть разницу.

...