0

行。这是一个挑战。

我在导航控制器中有一个表格视图。

我从根目录推送它,在那里我有一个允许我添加新记录的添加操作。这很好用。

现在我试图做的是将此表视图添加到标签栏视图(没有标签栏控制器因为不起作用)但在同一个导航控制器中。

所以我想做的是:根> TabBarView(加载Tableview)>添加新记录。

问题出在托管对象上下文中,我得到了整个“找不到实体错误”,但我不知道如何解决它。

我已经设法让 AddRecord 模态视图控制器从 tabBarView 中显示出来,但它没有导航栏,而如果我尝试在单独的 tableView 中(在 tabbar 之外)添加一条记录,它没有问题。

我现在从 TabBarView 的 navigationBarbuttons 调用我的方法,路由到 tableviews 方法。

我知道现在必须从 tabBarView 而不是实际的 tableview 调用我的方法,并且它们确实会触发,但我不知道当 MOC 在 tabView 中时如何管理它。

哦,这是基于 coredata 食谱和书籍的,所以当 add record 方法被触发时,它会创建一个新的 MOC 来创建它,然后在你完成后重新集成回主 MOC。

有任何想法吗?

4

2 回答 2

0

就主要的 MOC 而言,视图和控制器应该是无关紧要的。在您使用的任何控制器中获取对 MOC 的引用,并使用该 MOC 进行操作。如果您的应用程序委托创建了主 MOC,请将其设置为该委托的属性并从您的视图或选项卡控制器访问它。

我不太了解您遇到的导航问题,但是如果您需要导航栏时没有导航栏,我怀疑您需要在添加 UIViewController 子类的某处创建并添加 UINavigationController。使子类成为新 UINavigationController 的根,并将控制器放入选项卡或其他任何地方。

您的托管对象上下文 (MOC) 不应依赖于导航或视图。它是模型的一部分。(尽管您知道,可取消编辑视图的第二个 MOC取决于您创建它以供编辑器使用的程度的导航。)

于 2009-10-27T03:01:30.607 回答
0

听起来你有几个问题。

  1. “找不到实体”错误——这取决于您使用的托管对象上下文。如果您创建了一个单独的 MOC 来管理您正在编辑的对象(顺便说一句,这是一个好主意),请确保为它分配一个 Persistent Store Coordinator。这就是 MOC 发现可用对象的方式。如果您使用的是在 App Delegate 中创建的 MOC,请确保您正确拼写实体名称。
  2. No Navigation Bar in sheet -- When you push a view controller onto a navigation controller, its navigationItem is used to populate the navigation bar. When you present a view controller as a sheet, only the view controller is displayed. It is not embedded in a navigation controller. In order to get the navigation item to display, you'll need to create a new navigation controller with your view controller as the root, and then present the navigation controller's view.
于 2009-10-27T14:00:24.380 回答