iPhone、iPhone 5、iPad 用の 3 つのストーリーボードを含むアプリがあります。2 iPhone の絵コンテ?いくつかの明白な理由により、私はただこの道を進みたいだけです。すべてが正常に機能していました。didFinishLaunchingWithOptions で、画面サイズに応じてストーリーボードを手動でロードしました。次に、ターゲットを複製し、別の製品の名前に変更しました。現在、3.5 インチのデバイスでアプリを実行しようとすると、それぞれのストーリーボードが読み込まれません。
「キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'バンドル NSBundle (ロード済み) に 'iPhone.storyboard' という名前のストーリーボードが見つかりませんでした'」正しい。このアプリは、iPhone 5 および iPad 用の Storyboard を適切に読み込んでいます。展開情報と情報。リストには、1) iPhone 用と iPad 用の 2 つのストーリーボード エントリのみを含めることができます。3 番目のストーリーボードを plist に追加するにはどうすればよいですか。
私はObjective-Cが初めてなので、親切にしてください!
正確なエラー メッセージは 2013-07-15 11:20:34.423 AppName[1907:c07] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'Could not find a storyboard name'iPhone4.storyboard' in bundle NSBundle ( loaded)' * First throw call stack: (0x27a5012 0x25cae7e 0x1955f96 0x2f9f 0x2a29 0x150c157 0x150c747 0x150d94b 0x151ecb5 0x151fbeb 0x1511698 0x3202df9 0x3202ad0 0x271abf5 0x271a962 0x274bbb6 0x274af44 0x274ae1b 0x150d17a 0x150effc 0x277d 0x26a5) libc++abi.dylib: terminate called throwing an exception
ここでストーリーボードを読み込んでいます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
if (iOSDeviceScreenSize.height == 480)
{
UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone4.storyboard" bundle:[NSBundle mainBundle]];
UIViewController *initialViewController = [iPhone4Storyboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
else if (iOSDeviceScreenSize.height == 568)
{
UIStoryboard *iPhone5Storyboard = [UIStoryboard storyboardWithName:@"iPhone5.storyboard" bundle:[NSBundle mainBundle]];
UIViewController *initialViewController = [iPhone5Storyboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
else if (iOSDeviceScreenSize.height == 1024)
{
UIStoryboard *iPadStoryboard = [UIStoryboard storyboardWithName:@"iPad.storyboard" bundle:[NSBundle mainBundle]];
UIViewController *initialViewController = [iPadStoryboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
return YES;
}