【问题标题】:How can I load different storyboards depending on the device?如何根据设备加载不同的故事板?
【发布时间】:2014-03-30 05:10:55
【问题描述】:

我正在尝试:

  1. 检测设备(iPhone 3.5"、iPhone 4"、iPad 等)
  2. 根据运行应用程序的设备和大小加载不同的故事板。

我已经看过一些教程,但我仍然没有得到它,请有人输入/显示需要在应用程序委托中执行哪些代码才能实现这些目标。

谢谢!

【问题讨论】:

    标签: ios objective-c storyboard xcode5


    【解决方案1】:

    在您的应用委托中尝试这样的操作:

    - (void)applicationDidFinishLaunching:(UIApplication *)application {
        UIStoryboard *storyboard = nil;
        if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone)
        {
            if ([[UIScreen mainScreen] bounds].size.height == 568.0f)
            {
                storyboard = [UIStoryboard storyboardWithName:@"iPhone5s" bundle:nil];
            }
            else
            {
                storyboard = [UIStoryboard storyboardWithName:@"iPhone4" bundle:nil];
            }
        }  
        else
        {
            storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];
        }
        [window setRootViewController:[storyboard instantiateInitialViewController]];
        [window makeKeyAndVisible];
    }
    

    【讨论】:

    • 它在最后两行抛出错误。它说window是一个未声明的标识符并建议_window。我尝试了它的建议,现在我只是得到一个黑屏,在控制台中它说“应用程序窗口应该在应用程序启动结束时有一个根视图控制器。”
    • 我刚刚忘记为场景指定视图控制器,它可以工作,非常感谢您的帮助!
    • 我无法让我的第二个视图链接到主视图 controller.h。视图加载但它什么也不做,因为它没有链接,我该如何解决这个问题?
    • 你确定在storyboard文件中设置了视图控制器的类吗?
    猜你喜欢
    • 2013-01-18
    • 2021-01-04
    • 1970-01-01
    • 2014-11-07
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多