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

Iphone UIWindow在哪里实例化,故事板在哪里传入?,iphone,ios,storyboard,ios6,Iphone,Ios,Storyboard,Ios6,我想知道是否有人能解释一下(或给我指出正确的方向) 当不使用故事板时,用于实例化UIWindow的代码消失在哪里?在空的应用程序项目模板中,窗口是在应用程序DidFinishLaunching中创建的。。。在AppDelegate中 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 然而,如果使用故事板,上面的代码将被省略,尽管UIApplication显然知道从哪个窗口开始 应用程序在

我想知道是否有人能解释一下(或给我指出正确的方向)

  • 当不使用故事板时,用于实例化UIWindow的代码消失在哪里?在空的应用程序项目模板中,窗口是在应用程序DidFinishLaunching中创建的。。。在AppDelegate中

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    然而,如果使用故事板,上面的代码将被省略,尽管UIApplication显然知道从哪个窗口开始

  • 应用程序在其中查找info.plist文件,以了解从哪个故事板开始


  • 我肯定这些都有很好的记录,只是我还没有找到。读这篇文章,但没什么帮助。我在iOS上已经有一段时间了,只是直到现在我才不得不去搞乱应用程序的初始启动。感谢使用情节提要时,要加载的情节提要来自应用程序的Info.plist文件

    您的Info.plist文件中将有一个部分,其键值对如下所示:

    <key>UIMainStoryboardFile</key>
        <string>MainStoryboard</string>
    
    UIMainStoryboardFile
    主板
    

    在本例中,MainStoryboard是加载的默认情节提要的名称。

    我认为您的意思是“当您使用情节提要时,代码消失到哪里。”

    应用程序根据Info.plist中的“主情节提要文件基本名称”(UIMainstryBoardFile)键加载情节提要,并从该情节提要加载带有“Is初始视图控制器”切换集的视图控制器

    编辑:如评论中所述,以下代码(类似于基于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;
    }
    

    我将重新措辞,我将如何在运行时以编程方式更改初始情节提要?如果我创建一个空的非情节提要应用程序,我可以按1添加情节提要。创建一个,2个。将密钥添加到Info.plist,然后添加3。正在删除appDelegate中的窗口分配代码。。但是,我如何根据应用程序加载时的情况分配不同的故事板?这是您应该在视图控制器中执行的操作,您有什么理由希望在应用程序启动时有条件地加载不同的故事板?不管怎样,我花了一些时间,并设法找出了如何做到这一点,我已经相应地编辑了这个问题。