UIWindow在哪里实例化,故事板传入?

Pat*_*ick 3 iphone storyboard ios ios6

我想知道是否有人可以解释(或指出我正确的方向)

  1. 在不使用故事板的情况下,实例化UIWindow的代码消失了吗?在空应用程序项目模板中,窗口是在AppDelegate中的应用程序didFinishLaunnching中创建的.

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    Run Code Online (Sandbox Code Playgroud)

    但是,如果使用故事板,则省略上述代码,但显然UIApplication知道从哪个窗口开始.

  2. 应用程序在哪里查找info.plist文件以了解要从哪个故事板开始.

我确信这些都记录在案,我还没有找到它.阅读本文在iPhone应用程序中实例化的UIWindow在哪里?但帮助不大 我已经在iOS上工作了一段时间,直到现在才开始使用应用程序的初始启动.谢谢

tta*_*rik 7

我觉得你的意思"其中代码消失后,当您正在使用故事板".

应用程序根据Info.plist中的"主要故事板文件基本名称"(UIMainStoryboardFile)键加载故事板,并从该故事板中加载具有"是初始视图控制器"切换集的视图控制器.

编辑:如评论中所述,以下代码(类似于基于xib的应用程序中的初始加载)将允许您在应用程序启动时按名称加载和显示故事板:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"StoryboardName" bundle:nil];
    UIViewController *viewController = [storyboard instantiateInitialViewController];
    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)