iOS有好几种创建页面的方式:最先接触的是完成通过storyboard创建,很简单,但缺点也比较明显,它不能随心所欲的画出想要的效果;然后在学习别人的代码时,发现iOS老手们都是靠纯代码创建页面的,代码很长,也比较难看懂;最后自己做项目时,能用storyboard就用它,不能用则靠代码实现,算是两者的混合。
一、完成通过storyboard创建
创建新功能,Xcode已经帮你设好了最基本的格式,能直接运行看到效果,这就是完成通过storyboard创建的工程。其代码运行的思路如下:
1、工程的 Info.plist 中 “Main storyboard file base name” 配置好启动的storyboard,默认的是“Main”;
2、如果你没添加任何代码,那程序会找到 “Main.storyboard”中的 “Storyboard Entry Point” 指向的视图(ViewController),就是那根箭头所指;
3、启动视图会根据“Custom Class”中的Class信息找到对应的类,通常是ViewController。这样,程序加载了storyboard的初始页面,运行到viewDidLoad 方法后,还能根据你写的代码更改视图。storyboard相当于MVC模型中的“V”,而ViewController显然是“C”。
通过ViewController,你可以在视图中增加标签、更改文字、变换颜色等等,但视图的基本样式已经被storyboard定好了,很难有较大的更改。
二、纯代码构建视图
纯代码构建视图与第一种方法刚好处在对立面,难度大,但页面可以做的很绚丽,而且效率很高于storyboard。
由于水平有限,这块略过。
三、代码与storyboard混用创建视图
这种方式明显的特点是一个ViewController对应storyboard里的一个页面,并用代码将两者绑定,类似Android中的页面实现方式。主要靠代码解决页面间的跳转问题,比单用storyboard要灵活许多。
通常情况下,一个storyboard中有好几个页面,如 Main.storyboard 中有mine、assets、lottery等页面,它们在identity inspector中的Storyboard ID中填好,“Custom Class”中的Class填好ViewController对应的名称。
然后是页面与ViewController绑定
<span style="font-size:14px;"> UIStoryboard* board = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
RootViewController* mineViewCOntroller = [board instantiateViewControllerWithIdentifier:@"mine"];</span>
如果要实现页面跳转,也可以容易通过navinavigationController实现
<span style="font-size:14px;"> UIStoryboard* buyHistoryBoard = [UIStoryboard storyboardWithName:@"Record" bundle:nil];
UITableViewController* controller = [buyHistoryBoard instantiateViewControllerWithIdentifier:@"buyhistory"];
[self.navigationController pushViewController:controller animated:YES];</span>
感觉总结起来蛮简单的,自己当初摸索这种方式还花了不少时间。
也欢迎大家贴出自己的创建视图和页面跳转的方式。