13

わかりました初心者タイプの質問です。

Tab および Navigation コントローラーと共に Core Data を使用したいと考えています。

XCode でナビゲーション ベースのアプリケーションを作成すると、Core Data を選択するオプションが表示されます。一方、タブ バー アプリケーションを作成すると、選択肢がありません。

タブ バーがビュー コントローラーを表示することは理解しているので、ちょっと理にかなっています。ただし、デフォルトで基本的な Core Data コードが Application デリゲートに固定されていることを考えると、これが提供されない理由がわかりません。

現時点では、2 つのプロジェクトを作成し、それらの間でカット アンド ペーストを行っています。

XCode でのこの省略は奇妙に思えますか? なんらかの見落としですか?

ありがとう、マット

4

4 に答える 4

12

私は同じ問題に直面し、tabBarアプリを作成し、後でコアデータを追加することになりました。

そうするために、私はしました:

  1. 私のプロジェクトにcoredataフレームワークを追加しました
  2. myproject_Prefix.pchに#import<CoreData/CoreData.h>を追加しました
  3. コアデータをサポートするテンプレートによって作成されたのと同じように、ヘッダーとゲッターの実装を委任するための宣言を追加しました
  4. モデルファイルの作成-リソースグループ(またはモデルを配置する場所)にファイルを追加し、データモデルファイルを作成します。

これにより、テンプレートをサポートするコアデータの場合と同じポイントに到達するはずです。

あなたの特定のケース(タブバー付きのコアデータ)のために、Appleは良いサンプルアプリを持っています:

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

これは、xibファイルで定義された関連するView Controllerにコンテキストを渡す方法を示しています。これは、しばらくの間私を悩ませていました。

お役に立てれば。

乾杯、ピーター

于 2009-12-14T05:36:38.140 に答える
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 オプションが表示されます。

于 2012-01-12T09:44:53.610 に答える
6

テンプレートはより「純粋」になるように設計されており、テンプレートの任意の組み合わせは開発者の演習として残されています。

CoreData +TabとNavControllerテンプレートを実行することもできますが、公平を期すために、「合理的」である可能性のある他のすべての組み合わせを実行する必要があります。

それらを自分で組み合わせるのはそれほど難しいことではありません。開発センターには、動作中のアプリケーション内のいくつかの組み合わせを示すサンプルアプリがあります。

于 2009-09-02T04:26:35.507 に答える
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];
}

これで基本的な設定ができ、そこからインターフェイス ビルダーを使用してナビゲーション コントローラーを簡単に追加できます。

于 2009-09-02T09:01:47.900 に答える