如何将第3个故事板添加到info.plist中

时间:2013-07-14 18:09:55

标签: iphone ios xcode4.5 uistoryboard info.plist

我有一个带有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;
}

1 个答案:

答案 0 :(得分:0)

您需要访问主捆绑而不是捆绑。故事板的实例化应如下所示:

UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone4.storyboard" bundle:[NSBundle mainBundle]];