Передача управляемогоObjectContext через представления UITabBarController - PullRequest
4 голосов
/ 19 октября 2010

У меня есть приложение, основанное на шаблоне Utility (где вы переворачиваете представление, чтобы увидеть другое).В первом представлении есть экран входа в систему, затем он переворачивается, чтобы показать интерфейс в стиле UITabBar.

У меня возникают проблемы с обработкой, как передать managedObjectContext из делегата приложения (где он создается) всепуть к каждому из представлений панели вкладок.

Управляемый делегат приложения Управляемый объект передается FrontLoginViewController , который передается в BackViewTabBarViewController .. гдедальше?

В наконечнике BackViewTabBarViewController есть UITabBarController с UINavigationController для каждой вкладки.

Ответы [ 2 ]

11 голосов
/ 19 октября 2010

Похоже, что managedObjectContext определен в вашем AppDelegate. Если так, то ...

Из любого viewController, который вы хотите ... просто позвоните

MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];

Тогда используйте ...

appDelegate.managedObjectContext

всякий раз, когда вам нужен управляемый объект. Измените MyApplicationDelegate на ваш AppDelegate, и все будет хорошо.

2 голосов
/ 05 февраля 2011

Я столкнулся с той же проблемой, я поделюсь своим решением.

Сначала вам понадобится ссылка на Nav Controller на панели вкладок в nib-файле, убедитесь, что вы подключили его.

IBOutlet UINavigationController *navigationController;

Затем получите контроллер в соответствии с рекомендациями в документации по поддержке и отправьте его управляемогоObjectContext:

SavedTableViewController *saved = (SavedTableViewController *)[navigationController topViewController];
saved.managedObjectContext = self.managedObjectContext;

Алекс (из другого поста) прав: «Как правило, вам следует избегать получения общих объектов от делегата приложения. Это делает его слишком похожим на глобальную переменную, и с этим связан целый ряд проблем. «

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