Core data 将对象从tabbarController传递到其子视图

Core data 将对象从tabbarController传递到其子视图,core-data,Core Data,我试图将一个简单的核心数据对象信息从tabBarController传递到它的子视图,以便它们各自引用该对象的不同属性。作为一个新手,我甚至不知道从哪里开始。它似乎不像将数据从一个表视图传递到另一个表视图那么简单 感谢您的帮助。一个UITabBarController应该处理其他视图控制器,而不是数据对象。选项卡栏控制器首先是如何获取对象引用的?你共享的对象是什么 让你的每个下属VC保留一个指向对象的指针,然后他们每个人都可以按照适当的键路径到达他们设计用来处理的实体 Tim Roadley的书

我试图将一个简单的核心数据对象信息从tabBarController传递到它的子视图,以便它们各自引用该对象的不同属性。作为一个新手,我甚至不知道从哪里开始。它似乎不像将数据从一个表视图传递到另一个表视图那么简单


感谢您的帮助。

一个
UITabBarController
应该处理其他视图控制器,而不是数据对象。选项卡栏控制器首先是如何获取对象引用的?你共享的对象是什么

让你的每个下属VC保留一个指向对象的指针,然后他们每个人都可以按照适当的键路径到达他们设计用来处理的实体

Tim Roadley的书Learning Core Data for iOS在第5章和第6章中介绍了如何将对象从一个视图控制器(表视图)传递到详细视图。听起来你不是这么问的,但以防万一


针对评论:

我看着一个表视图,轻触一个单元格,然后一个选项卡栏控制器滑入?这不是标签栏通常的视觉隐喻;这是为了改变整个程序的模式。查看音乐应用程序以了解典型示例:歌曲、播放列表、艺术家

但是如果你真的需要这样做,试试这个(我假设你使用的是故事板):

  • prepareforsgue:
    的tableview控制器中,告诉目标(选项卡栏控制器)它正在处理的对象
  • 在选项卡栏控制器的
    -view将出现
    ,告诉其每个选项卡有关属性:
    self.frobisherViewController.frobisher=self.myWidget.frobisher

相反,您可以告诉每个组件选项卡关于顶级对象:
self.frobisherViewController.widget=self.myWidget
。但我更喜欢第一种方法,因为联系较少。
frobisherViewController
现在需要了解小部件和frobishers。

如果您在选项卡栏控制器的视图控制器(大多数)之间共享同一个对象,那么最好的架构可能是使用一个中心数据对象

一个典型的模式是一个单例(singleton),某种提供对象的数据管理器,但这可能有些过分。另一种方法是保留对所有视图控制器的引用,并在发生变化时逐个更新它们——这也不是很优雅

你真正想要的是一个全局变量。你可以(ab)使用你的应用程序委托(只需给它一个指向对象的属性),或者如果你更喜欢你的选项卡栏控制器(创建一个子类,给它一个属性)。在后一种情况下,每个视图控制器都可以获得如下对象:

NSManagedObject *object = [(MyCustomTabBarController*)self.tabBarController object];

例如,您可以在
视图中检查更改并刷新视图将出现

这非常简单。我试图调用子视图initWithNibName中的对象,但它不起作用。我最终创建了一个setObject函数,并调用了我想要在viewwillbeen中显示的属性


希望这对其他人有所帮助。

我正在使用tabBarController作为从tableView控制器中拾取的对象的详细视图。不确定这是否有意义,作为一个完全的新手,我意识到这样做可能会打破一些基本规则。因此,它继承了我希望在每个选项卡子控制器中显示的核心数据对象的属性。