×

一个ios应用的基本目录结构以及如何确定首页

发表于2年前(Oct 21, 2015 10:47:45 AM)  阅读 911  评论 0

分类: 移动应用开发 ios

标签: ios应用目录结构 storyboard LaunchScreen

读完本文您将了解一个ios应用工程的基本目录结构,以及从启动开始,是如何定位到您要展示的页面内容的。

使用Xcode7新建一个最简单的Single View Application,工程目录结构如下:

AppDelegate.swift,为整个应用的一个代理,提供程序启动、退出等类似监控的接口。  

ViewController.swift,做过ios开发的都知道,他就是我们默认的首页,这里要区分一下首页和启动页,App应用一般都有一个启动页面,像经典的微信地球村界面,就这就是启动界面,启动界面一般是过几秒自动消失,然后进入到应用的首页。

Main.storyboard,故事板,简称sb,通许多其他应用开发一样,Xcode提供的可视化开发工具,一直以来,使用storyboard开发,使用代码开发,以及使用xib+代码开发,这三种方式孰优孰劣都有争议,但根据Xcode版本的更新来看,苹果以后应该会主推storyboard开发。

Assets.xcassets,用于存储图片资源的目录。

LaunchScreen.storyboard,启动页面的故事板,这里面就定义了启动页面的内容,Xcode7之前的版本,启动页面使用的是xib形式。

Info.plist,应用的配置文件。

现在我们来看下Info.plist配置文件里面有些什么配置项:

可以看到Launch screen interface file base name项的值为LaunchScreen,这个其实就是对应的LaunchScreen.storyboard,所以启动页面就是LaunchScreen.storyboard里面的内容,而Main storyboard file base name项的值为Main,对应Main.storyboard,所以启动页面执行完,将会转到Main.storyboard。

我们再来看Main.storyboard里面有什么:

Main.storyboard里面有一个View Controller,打开属性卡片

可以看到他的实现类就是ViewController,所以ViewController就是默认的首页。

但是如果Main.storyboard里面有多个UIViewController,那首页是哪一个呢,是不是就是最上面的那一个呢。其实Main.storyboard里面UIViewController的顺序只跟你开发的顺序有关,跟加载顺序是无关的。

其实Main.storyboard是根据Is Initial View Controller上面这个属性来确定要显示哪个页面的,换句话说,每个Main.storyboard都可以有一个首页。

我们总结一下,应用运行时,首先是由AppDelegate来启动,找到启动页面对应的故事板,然后展示故事板中的默认页面,启动页面显示完,开始找Main对应的故事板,展示Main故事板中的默认页面。如果对应的故事板中没有默认页面,程序将会出错。要修改对应的故事板,可以修改上面描述的Info.plist文件里面的两个选项,也可以用下面的方式修改:

发表评论