0

Xcode 4.3.3 でユニバーサル ウィンドウ アプリを作成しました。後で、XIB を使用しない View Controller(UniversalRootViewController) クラスを 1 つ追加しました。次に、2 つの XIB ファイル (RootViewController_iPhone、RootViewController_iPad) を作成し、これらの iPhone XIB ファイル RootViewController_iPhone を UniversalRootViewController クラスに接続します。 RootViewController_iPad についても同じことを行いました。

App Delegate に、次のコード行を追加しました。

UniversalRootViewController *controller = nil;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    controller = [[UniversalRootViewController alloc] initWithNibName:@"RootViewController_iPad" bundle:[NSBundle mainBundle]];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.window addSubview:navigationController.view];
}
else
{
    controller = [[UniversalRootViewController alloc] initWithNibName:@"RootViewController_iPhone" bundle:[NSBundle mainBundle]];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.window addSubview:controller];
}

また、これらの 2 つのキーと値のペアを UniversalApp-Info.plist に追加しました メインの nib ファイルのベース名: RootViewController_iPhone メインの nib ファイルのベース名 (iPad) : RootViewController_iPad

このアプリケーションを実行すると、次のエラー メッセージを表示してアプリが作成されます。

キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー ビューのキー値コーディングに準拠していません。

XIBファイルをView Controllerに正しく接続しました。アプリがクラッシュする理由がわかりません。解決策を教えてください。

4

2 に答える 2

1

ファイルの所有者のビュー アウトレットを XIB ファイルの各ビューに設定する必要があります。オブジェクト。ビューを選択します。- 他の XIB ファイルについても同じことを行います

于 2012-10-17T08:59:23.147 に答える
0

Universal-Info.plist で Nib ファイルの 2 つのキーと値のペアを削除することで、問題を解決しました。これで、アプリはクラッシュすることなく完全に動作します。次の2行を削除しました

于 2012-10-17T10:00:06.140 に答える