iphone标签栏控制器和核心数据

时间:2009-09-02 04:13:12

标签: iphone xcode core-data uinavigationcontroller tabbarcontroller

好一点新手类型的问题。

我想使用Core Data以及Tab和Navigation控制器。

在XCode中,如果我创建基于导航的应用程序,我可以选择核心数据。然而,如果我创建一个标签栏应用程序,我就无法做出选择。

我知道Tab Bars显示视图控制器,所以它有点意义。但是,默认情况下,它会将基本的核心数据代码粘贴到应用程序委托中,但我不明白为什么不提供此代码。

目前我正在创建这两个项目,并在它们之间切割和粘贴。

XCode中的遗漏对您来说是否有点奇怪?这是某种疏忽吗?

谢谢, 马特

5 个答案:

答案 0 :(得分:12)

我遇到了同样的问题,最后创建了一个tabBar应用程序并稍后添加了核心数据。

要做到这一点,我已经:

  1. 将coredata框架添加到我的项目
  2. 添加了#import< CoreData / CoreData.h>到myproject_Prefix.pch
  3. 添加声明以委托标头和getter实现,就像支持核心数据的模板一样
  4. 创建模型文件 - 将文件添加到资源组(或者您希望放置模型的位置)并创建数据模型文件。
  5. 这将使您与核心数据支持模板的目标相同。

    对于您的特定情况(带有tabbar的核心数据),Apple有一个很好的示例应用程序:

    http://developer.apple.com/iphone/library/samplecode/iPhoneCoreDataRecipes/index.html

    这显示了它们如何将上下文传递给定义的相关视图控制器 在xib文件中,这让我有一段时间了。

    希望这有帮助。

    干杯, 彼得

答案 1 :(得分:7)

您可以自己添加它,这很简单:

要修改标签栏模板设置,您必须打开以下文件

对于XCode 4.2:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tabbed Application.xctemplate/TemplateInfo.plist

要添加核心数据选项,您必须将属性“ com.apple.dt.unit.coreDataCocoaTouchApplication ”添加到Ancestors键:

添加属性后,它应如下所示:

<key>Ancestors</key>

<array>
<string>com.apple.dt.unit.storyboardApplication</string>
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string>
</array>

对于以前的XCode版本

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tab Bar Application.xctemplate/TemplateInfo.plist

要添加核心数据选项,您必须将属性“ com.apple.dt.unit.coreDataCocoaTouchApplication ”添加到Ancestors键:

添加属性后,它应如下所示:

<key>Ancestors</key>

<array>
<string>com.apple.dt.unit.cocoaTouchFamiliedApplication</string>
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string>
</array>

重启Xcode!

现在一切都应该正常工作:!!当您在Xcode中创建一个新的选项卡式项目时,您可以看到Core Data选项。

答案 2 :(得分:6)

模板设计为更“纯粹”,模板的任何组合都留给开发人员练习。

他们可以做一个CoreData + Tab和Nav Controller模板,但为了公平起见,他们必须做其他可能“合理”的组合。

自己组合并不是那么难,开发中心的示例应用程序会显示工作应用程序中的一些组合。

答案 3 :(得分:3)

有用 - http://www.theappcodeblog.com/2011/06/30/iphone-development-tutorial-add-core-data-to-a-tab-bar-application-and-save-user-data/

详细介绍了将Core数据添加到基于标签的iOS应用程序的过程。

答案 4 :(得分:2)

不得不这样做,我认为最简单的方法是创建一个“基于窗口的应用程序”,然后在AppDelegate中声明一个tabBarController,如下所示:

AppDelegate.h

@interface CommUnityAppDelegate : NSObject <UIApplicationDelegate> {
UITabBarController *tabBarController; // add this
UIWindow *window;
}

// and this
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

在MainWindow.xib中插入一个TabBarController并将其与AppDelegates tabBarController连接。

之后,通过添加以下行

使其可见

AppDelegate.m

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  [window addSubview:tabBarController.view]; // add this
  [window makeKeyAndVisible];
}

这为您提供了基本设置,您可以从中轻松添加带有界面构建器的导航控制器