【问题标题】:iOS >> Setting UIWindow in AppDelegate When Using Multiple StoryboardsiOS >> 使用多个情节提要时在 AppDelegate 中设置 UIWindow
【发布时间】:2013-09-29 11:26:02
【问题描述】:

我希望创建一个包含多个故事板的应用程序,以支持 iPhone5、iPhone4(及以下)和 iPad 屏幕。

我做了以下事情:

  1. 我创建了 3 个故事板,每个设置一个。
  2. 我清除了项目界面中的“主情节提要”字段。
  3. 我清除了应用程序 info.plist 文件中的“主情节提要文件基本名称”字段。
  4. 我在 AppDelegate 的“didFinishLaunchingWithOptions”方法中输入了以下代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {        
    
        UIStoryboard* appStoryboard = nil;
    
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
        {
            if (IS_IPHONE_5) //a macro capturing the screen size
            {
                appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil];
            }
            else 
            {
                appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone4" bundle:nil];
            }
        }
        else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
        {
            appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
        }
        UIViewController* viewController = [appStoryboard instantiateInitialViewController];
        [self.window setRootViewController:viewController];
        [self.window makeKeyAndVisible];
        return YES;
    }
    

应用程序正在运行并且没有崩溃,但我得到一个黑屏。

我错过了什么/做错了什么?

【问题讨论】:

    标签: ios storyboard idioms appdelegate info-plist


    【解决方案1】:

    你没有初始化window

    只需添加

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    【讨论】:

      猜你喜欢
      • 2012-05-11
      • 1970-01-01
      • 2015-09-19
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      相关资源
      最近更新 更多