web-dev-qa-db-ja.com

Xcode 4.2 iOS空のアプリケーションとストーリーボード

私はXcodeの初心者で、初めてのトレーニングアプリを作成しようとしています。どうやら空のアプリケーションテンプレートは、事前に統合されたコアデータを提供する唯一のテンプレートなので、私はそれを選択します。しかし、その後、UIを機能させることができません(空のままです)。

私がしたこと:

  • 空のアプリケーションテンプレート
  • 新しいiPad Storyboardファイル
  • それにスプラッシュタブバーコントローラー
  • プロジェクトの概要ビューのメインストーリーボードを変更
  • ヒット ⌘R
  • タブなしで真っ白なiPad画面を見つめた

タブバーアプリケーション(ストーリーボードの変更を反映する)として作成した別のプロジェクトとの比較を、洞察なしで試みました。

37
Amadan

次のように、AppDelegate.mのウィンドウ作成と表示コードをコメント化(または削除)します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // self.window.backgroundColor = [UIColor whiteColor];
    // [self.window makeKeyAndVisible];

    return YES;
}

ストーリーボードを使用すると、メインUIWindowが自動的に作成されます。あなたのケースで何が起こっているかというと、別の白いウィンドウを作成し、それをタブUIの上に配置しているということです。

[〜#〜] also [〜#〜]-マスター/詳細テンプレートはコアデータオプションも提供することに注意してください。

76

空のアプリケーションプロジェクトの場合、ストーリーボードファイルを追加した後、2つのことを行う必要があります...

  1. プロジェクトのInfo.plistファイルに行を追加します。

    Key: Main storyboard file base name
    Value: Storyboard
    

    (または、ストーリーボードファイルに名前を付けたもの)

  2. application:didFinishLaunchingWithOptions:以外のreturn YES;の内容を削除します。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    
39
Scott Gardner

マスター/ディテールおよびユーティリティプロジェクトテンプレートも、オプションとしてコアデータを提供します。

Apple Core Dataのテンプレートはかなり恐ろしいものです。これらは、アプリのデリゲートに機能を詰め込みすぎ、不必要に遅延読み込みを使用するため、事態がさら​​に複雑になります。

生成されたコードを確認し、Core Dataを使用せずに開始するプロジェクトに別のクラスとして機能を追加する方がよいでしょう。

ただし、当面の質問に答えるために、デフォルトの空のテンプレートは、アプリデリゲートのapplication:didFinishLaunchingWithOptions:メソッドにプログラムでウィンドウを作成します。ストーリーボードはウィンドウ自体を設定するため、アプリのデリゲートからそのコードを削除する必要があります。そのメソッドで必要なのはreturn YES;だけです。

9
Jim