我开始学习iOS并且我有一个问题:当我启动项目时,应用程序将加载所有视图控制器或仅加载Main.storyboard中的初始视图控制器?
如果我的应用程序有很多视图控制器,例如50 VC,我想检查50 VC一次加载或每个VC加载我打电话时如下:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"myViewController"];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];
经过研究并询问了一些朋友,我在Apple doc中看到了:
主要故事板在应用程序的信息属性列表中定义 文件。如果在这个文件中声明了一个主故事板,那么当你的 应用程序启动后,iOS执行以下步骤:
- 它为您实例化一个窗口。
- 它加载主故事板并实例化其初始视图控制器。
- 它将新视图控制器分配给窗口的rootViewController属性,然后使窗口可见 屏幕。
醇>
答案 0 :(得分:0)
它只加载Main.storyboard中设置的Initial View Controller
。您可以将任何视图控制器设置为storyboard->的初始视图控制器。 select any view controller -> go to utility portion of xCode-> go to attribute inspector-> now check is Initial View Controller.
答案 1 :(得分:0)
来自文档:
UIStoryboard对象封装了存储在其中的视图控制器图 Interface Builder故事板资源文件。这个视图控制器 graph表示全部或部分视图控制器 应用程序的用户界面。通常,查看控制器 故事板被实例化并自动创建以响应 故事板本身定义的动作。但是,你可以使用 storyboard对象实例化一个初始视图控制器 故事板文件或实例化您想要的其他视图控制器 以编程方式呈现。
StoryBoard将在加载应用程序时加载初始viewController。其他视图控制器将在执行segues时加载或通过以下方法手动加载。
- instantiateInitialViewController
- instantiateViewControllerWithIdentifier:
在here
了解详情