Ott*_*o64 5 core-data uiviewcontroller nsfetchedresultscontroller ios
我的RootViewController包含一个简单的表视图.选择表中的一个条目后,将显示DetailViewController,其中包含有关所选条目的更多详细信息.相关数据对象的数据通过CoreData加载和保存.如何在didSelectRowAtIndexPath:方法中将FetchedResultsController和ManagedObjectContext传递给DetailViewController?我是否需要在DetailViewController.h中为两者定义属性?你能给我一个代码示例吗?
Tec*_*Zen 19
首先,每个获取结果控制器(FRC)实例都是针对每个tableview配置的,因此您不会将FRC从tableview控制器传递到tableview控制器.相反,每个tableview控制器都专门为其tableview实例化和配置新的FRC.
在主视图是主视图的主 - 详细设计中,您不会将FRC传递给详细视图,而是仅传递由所选tableview行表示的单个托管对象.
Apple建议通过"依赖注入"传递托管对象上下文(MOC).这很简单.在最常见的设计中,您在应用程序委托中初始化MOC,然后为每个视图控制器提供managedObjectContext属性.然后,当您加载/推送视图控制器时,只需将其managedObjectContext属性设置为MOC即可.
例如,在Master-Detail设计中,您通常有一个导航控制器(NAV).要了解其工作原理,请使用Xcode中基于导航的应用模板创建测试应用.标记它以使用核心数据.您将同时使用app委托和RootViewController拥有managedObjectContext属性.
现在在app delegate的applicationDidFinishLaunching:...方法中添加代码使它看起来像:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
RootViewController *topVC=(RootViewController *) self.navigationController.topViewController;
topVC.managedObjectContext=self.managedObjectContext;
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
...然后在RootViewController.m添加中:
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"self.managedObjectContext = %@",self.managedObjectContext);
[super viewDidAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)
当您运行测试应用程序时,RootViewController对象将记录它的managedObjectContext属性,如:
2011-07-19 09:24:05.193 CDNavTemplate[3203:207] self.managedObjectContext = <NSManagedObjectContext: 0x4d318a0>
Run Code Online (Sandbox Code Playgroud)
...证明该RootViewController对象具有来自app delegate的托管对象上下文.
现在,您只需为推送到导航控制器堆栈的每个视图控制器重复此过程,逐步将相同的托管对象上下文对象向下移动到视图层次结构中.您可以以完全相同的方式传递任何其他类型的对象.
Apple建议使用依赖注入,因为它使代码更加模块化,并且可以在单个应用程序中轻松使用多个托管对象上下文.您只需在任何特定时间传递每个特定视图控制器所需的特定上下文.
| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |