使用Core Data在每个选项卡上具有不同主详细信息表视图的选项卡式应用程序

时间:2011-12-08 16:11:35

标签: ios uitableview core-data uinavigationcontroller nsfetchedresultscontroller

我希望有人可以帮助noobie。

我正在尝试创建一个使用标签作为主要导航的iPhone / iPad应用。第一个选项卡将是一个主屏幕,其中包含基本信息和反馈按钮等。其他选项卡(3-4个选项卡)每个都需要显示应用程序的不同“部分”。每个部分将显示一个表格视图和导航控制器(使用核心数据)。这些表视图彼此无关,每个视图使用数据库中的不同表( sqlite )。

为了说明这一点,我们可以说标签1是应用程序主页,标签2列出了您的购物清单,标签3列出了食谱,标签4列出了可用的优惠券。它们都在应用程序中组合在一起,但它们来自完全不同的表格。每个选项卡上显示的每个导航控制器都完全不同。我正在使用它像选项卡中的辅助导航。

所以我的问题是,是否有人任何说明此技术的教程?如果没有,我必须为每个选项卡创建一个不同的fetchedResultsController?我使用Tabbed应用程序模板启动了项目,然后使用主详细信息模板创建了另一个虚拟项目,并将主详细信息代码和xib添加到我的选项卡项目中。所以我现在有标签显示主详细信息模板附带的通用时间戳实体,但我似乎无法使标签显示不同的数据。

另外,如何为每个表视图/选项卡创建导航控制器?所有文档都说要在AppDelegate中初始化它,但是如果我把它放在那里我怎样才能为每个标签获得不同的控制器?我是否在app委托中声明3-4个控制器,以及如何将它们分配给每个表视图?我没有在任何地方看到这样的例子,即使它有意义。 教程将非常感激。

提前谢谢你。 我只是被困在这里。 :(

1 个答案:

答案 0 :(得分:3)

因此,从每个标签开始(我假设您正在谈论UITabBarController)将拥有它自己的UINavigationController-> UIViewController。我不知道有关在选项卡中使用主 - 详细信息的任何教程,我还没有亲自完成,但是对于关于选项卡内导航控制器的第二个问题,您将执行以下操作:

使用故事板开始使用标签模板。

在你的故事板里,你可以看到他们有两个视图控制器,它们是捆绑在一起的。我会删除它们,因为它们不需要。

从右侧开始,您将需要拖动许多UINavigation控制器(金色控制器)。当你将其拖入时,应该引入两个视图,即控制器和根视图。

从标签栏控制器控件+拖动到导航控制器并将其连接到Relation-view控制器。为所有导航控制器执行此操作

您的故事板应该看起来像这样:enter image description here

您现在已经设置了所有视图结构。因此,您现在需要为这些创建所有类。正如您所提到的,您将创建一个配方视图控制器,购物清单视图控制器......

设置空白视图以使用刚刚创建的类。从这些类中,你可以将视图推送到他们的导航控制器,它会将它推到那个堆栈上,如果你切换标签,你将从那个停止的地方开始。

在每个类的内部,都需要一个NSfetchedResultsController,它将绑定到acore数据库(安装在委托或其他类中)并控制该表。

这是我用来设置我的第一个nsfetchedresultscontroller的一个很棒的教程。它从头到尾贯穿整个过程。

http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller

我希望能让你摆脱困境。如果设置中有任何不清楚的地方,请告诉我。