2013-02-28 3 views
0

Я работаю с основными данными и навигационными контроллерами. my story board состоит из следующего: (-> означает подключен) UINavigationController -> UIViewController -> UITableViewController (контроллер главного представления) -> UITableViewController (контроллер подробного представления) Шаблон мастера-детали Apple предлагает следующее в приложении метода appDelegate: didFinishLoadingWithOptions, которые на самом деле работают только тогда, когда раскадровка содержат UINavigationController -> UITableViewController, соединяющий self.managedObjectModel с классом

UINavigationController *navigationController = (UINavigationController *) self.window.rootViewController;

SSViewController *controller = (SSViewController *)navigationController.topViewController;

controller.managedObjectContext = self.managedObjectContext;

это не работает в моем случае, потому что navigation.topViewController вернет UIView Controller. Итак, как я могу достичь третьего представления UITableViewController из приложения: didFinishLoadingMethod?

ответ

0

Если «подключено», вы имеете в виду segues на раскадровке (что является единственным логическим способом, который я могу понять, чтобы интерпретировать ваш вопрос), тогда ответ заключается в том, что вы не можете напрямую.

Вместо этого установите свойство на UIViewController подкласса (любой мастер по умолчанию и/или детализации VC есть, в зависимости от обстоятельств), и передать его на UIViewController подклассов далее вниз по цепочке в методе prepareForSegue.

Это часто бывает полезно осуществить это с помощью протокола, которые принимают соответствующие VCs:

@protocol ContextHolder <NSObject> 

@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; 

@end 

prepareForSegue В, вы можете сделать:

((id<ContextHolder>)segue.destinationViewController).managedObjectContext = self.managedObjectContext; 
+0

Я. Я имею в виду перетекает. хорошо, я попробую это сейчас. Благодарю. – user1938695

+0

Я добавил несколько примеров к примеру. – sapi

+0

prepareForSegue должен быть помещен во второй файл управления .m-файлом в качестве готового к uitableview, и протокол должен быть помещен в файл .h файла segue, который я готовлю правильно? – user1938695

Смежные вопросы