我有一个与tab bar controller
相关联的navigationController
。
navigationController
已连接到3 TableviewControllers
,而我遇到的问题是managedobject
未正确传递;我把它作为Nil
,错误信息是:
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:'+ entityForName:nil不是 合法的NSManagedObjectContext参数搜索实体名称 'MyEntityName'
在我添加navigationController
之前,我已tab bar controller
直接连接到我的三个TableviewControllers
并且managedObject
正确传递,我知道我做错了什么?
这是didFinishLaunchingWithOptions
中的AppDelegate
代码:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
for (id viewController in [tabBarController viewControllers]) {
if ([viewController respondsToSelector:@selector(setManagedObjectContext:)]) {
[viewController setManagedObjectContext:self.managedObjectContext];
}
}
PS:如果您需要额外的代码和平来理解我的问题,我会很乐意发布它。
答案 0 :(得分:0)
我通过更改didFinishLaunchingWithOptions
中的代码来修复它;我的新代码是:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
NSArray *allTabs = tabBarController.viewControllers;
// Navigation Controller in the tab of BreakFasts
UINavigationController *navigationController = [allTabs objectAtIndex:0];
MyTableViewController *controller1 = (MyTableViewController *)navigationController.topViewController;
controller1.managedObjectContext = self.managedObjectContext;