http://www.xcoder.cn/index.php/archives/329
手动管理创建并启动一个StoryBoard就是让我们自定义一个StoryBoard,然后将其设置为App启动时默认的启动StoryBoard。
一、先创建一个Empty项目,这样做Xcode就不会为我们的项目创建任何文件了,只有一个App的代理。
创建一个Empty的Xcode项目(iOS)
二、创建好之后就可以看到项目的文件,系统就只给我们创建了一个主代理文件AppDelegate,其实这个文件都可以不用创建
iOS空项目的目录结构
三、新建一个名为Main的StoryBoard,其实这个名字怎么样都无所谓。
Main.StoryBoard的布局概览
一个新的StoryBoard创建好后场景内是空的,这里先拖入一个View Controller,这第一个View Controller默认就成为了App的入口场景了,在这个View Controller中添加一个Label来说明文件确实被启动了。
四、先看看程序启动后的结果
未加载StoryBoard的项目启动
App启动后是空白的,并未加载StoryBoard。
五、将自定义的StoryBoard设置为主界面
id="iframeu1595965_0" src="http://pos.baidu.com/vckm?rdid=1595965&dc=2&di=u1595965&dri=0&dis=0&dai=1&ps=2882x523&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1459384462166&ti=%E6%89%8B%E5%8A%A8%E7%AE%A1%E7%90%86%E5%88%9B%E5%BB%BA%E5%B9%B6%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AAStoryBoard%20%7C%20XCoder%20Studio&ari=1&dbv=2&drs=1&pcs=1903x979&pss=1903x2974&cfv=14&cpl=28&chi=2&cce=true&cec=UTF-8&tlm=1459355662<u=http%3A%2F%2Fwww.xcoder.cn%2Findex.php%2Farchives%2F329&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=true&cmi=37&col=zh-CN&cdo=-1&tcn=1459384462&qn=cc4e7c13dc328b9d&tt=1459384462144.25.212.215" width="336" height="280" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: bottom; max-width: 100%;">
点击打开XCAppDelegate.m,看看application:函数代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; |
self.window.backgroundColor = [UIColor whiteColor]; |
[self.window makeKeyAndVisible]; |
先创建了一个UIWindow,并将其设置为了当前App的UIWindow,将背景色设置为白色,并显示这个UIWindow。
现在更改这个函数,让StoryBoard显示在程序中,更改后的程序代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; |
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; |
self.window.rootViewController = [storyBoard instantiateInitialViewController]; |
self.window.backgroundColor = [UIColor whiteColor]; |
[self.window makeKeyAndVisible]; |
显示结果如下:
加载StoryBoard的App
这下StoryBoard显示出来了。