Запустить CoreData View не из AppDelegate? - PullRequest
0 голосов
/ 08 декабря 2011

Я играю с Core Data и очень плохо знаком с ним.Этот кусок кода кажется довольно важным:

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
    controller.managedObjectContext = self.managedObjectContext;

Он устанавливает managedObjectContext на желаемый вид, верно?(На этот раз MasterViewController

Теперь я поиграл с ним, но не могу заставить его работать. Что делать, если я хочу запустить MasterViewController где-то еще в приложении, а не прямо из /в качестве корневого представления?

Надеюсь, что вы можете помочь, спасибо.

РЕДАКТИРОВАТЬ: Мои взгляды, как в InterFace Builder:

UINavigationController> Отношения> UIViewController>Нажмите Segue> UITableViewController

Итак, в Интерфейсном конструкторе UINavigationBar - это пустой, первый контроллер, а затем к нему подключается UIViewController и это первое представление, которое пользователь увидит в приложении. Затем я хочу получитьоттуда к моему UITableViewController, где у меня есть использование CoreData.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

Убедитесь, что:

  1. Ваш контроллер представления (не вид) имеет доступ справа managedObjectContext.
  2. Ваше представление таблицы datasource получает данные от self.fetchedResultsController.
  3. Вы настраиваете выбранный контроллер результатов для выборки правильных данных для таблицы.
0 голосов
/ 08 декабря 2011

У вас есть два решения:

Вы должны передать ваше NSManagedObjectContext через все ваше приложение между всеми вашими UIViewController

или

Получите ваш NSManagedObjectContext откуда угодно:

[[[UIApplication sharedApplication] delegate] mainManagedObjectContext];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...