刚刚开始上手做iOS平台上的应用开发,从App Store下载完Xcode后立即上网找相应的教程,但是令人纳闷的是,教程描述的内容与程序基本不符合。
熟悉了一个星期之后,总结一下,仅供日后参考。
在Xcode 4.3中是基于iOS 5 SDK开发的,可以向下兼容开发iOS 4.3的应用程序,在iOS 5中加入了一个新概念——“Story Board”,与传统的xib/nib文件相比StoryBoard将零散的xib/nib文件整合在一起,形成一个流程可视化的单体文件,并且增加了以前版本并没有的Relationship概念,使得某些导航类型的ViewController更容易开发,不过这些是后话。
当前iOS4.3仍占较大份额,为了适应回市场的环境,还是做回一个iOS4.3的程序好。
但在官方的文档上表明了原来的Main nib file base name属性已经不被建议使用,但是iOS 4.3并不支持StoryBoard,而且在新的Xcode当中,示例项目不再提供此属性的用法(虽然还被支持),其SingleView Projec如果不选择use StoryBoard的话则会创建一个xib文件,但是其初始化是在Delegate中的didFinishLaunchingWithOptions中。didFinishLaunchingWithOptions中使用部分模版代码来控制window的创建,这样就给新入手开发的人一点费解。而且如果使用默认生成的xib文件作为Main nib file base name的话将会出现异常。
如果需要在Main nib file base name中使用xib文件其实很简单:
1. 添加一个文件,在文件选择窗口选择 User Interface -> Application,新建出来的文件名如MainApplication.xib
2. 设置Main nib file base name的值为刚才的MainApplication
3. 这时将AppDelegate中didFinishLaunchingWithOptions的代码删除(只是说模版代码已经没有作用了,如果有额外用途的自行定制)
运行程序,MainApplication.xib的设置出现在屏幕上了。
其实很多时候只是自己的概念还未清楚导致走了很多弯路,细心想想在Main nib file base name配置的文件是初始化程序时候要使用的界面配置,即对应的xib/nib文件的File's Owner必须是UIApplication或其子类,刚才创建一个Application的配置,其实就是将其File's Owner设置为UIApplication而已,这样初始化的方式特别适合程序全程需要使用TabBar或者Navigation的情况。
在新版的Xcode中User Interface被分类为Application,Window,View,Empty还有就是iOS 5才支持的Storyboard,通过这样的分类如果加以良好的运用想必会给开发带来极大的方便。