我有一个带有3个故事板的应用程序,适用于iPhone,iPhone 5和iPad。 iPhone的2个故事板?由于一些明显的原因,我只想这样做。 一切都运行正常,我在didFinishLaunchingWithOptions中手动加载了与屏幕大小相对应的故事板。 然后我复制了我的目标并将其重命名为另一个产品。现在,每当我尝试在3.5英寸设备上运行应用程序时,它根本不会加载相应的故事板说这个
"由于未捕获的异常终止应用' NSInvalidArgumentException',原因:'无法找到名为' iPhone.storyboard'的故事板捆绑NSBundle(已加载)'" 我三重检查故事板名称,复制捆绑资源及其目标成员资格,所有都是正确的。 该应用程序正在为iPhone 5和iPad加载Storyboard。 部署信息和信息。该列表只能有2个故事板条目1)用于iPhone和其他用于iPad。如何将第3个故事板添加到plist中。
我是Objective-C的新手,所以请善待!
确切的错误消息 2013-07-15 11:20:34.423 AppName [1907:c07] *由于未捕获的异常终止应用' NSInvalidArgumentException',原因:'无法找到名为&#39的故事板; iPhone4.storyboard'捆绑NSBundle(已加载)' * 第一次抛出调用堆栈: (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调用抛出异常
这里我正在加载故事板。
- (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;
}
答案 0 :(得分:0)
您需要访问主捆绑而不是捆绑。故事板的实例化应如下所示:
UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone4.storyboard" bundle:[NSBundle mainBundle]];