关于storyBoard的一些小问题与总结

版权声明:本文为博主Atany原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/yang8456211 https://blog.csdn.net/yang8456211/article/details/13005429

在iOS界面这块,要么使用Nib文件、要么就直接写在代码里面了,没有用过storyBoard,一直很好奇,今天看完之后想想还是做个总结吧,很多东西都比较细节。

为什么要用storyBoard?好在哪里?

从用完的感觉上来说,确实方便,能够迅速的建立起各个界面之间的连接关系,跳转什么的,后期修改连接也是很容易的。

但是,从另一个角度出发,storyBoard比较适合小型程序,或者说界面比较少的程序,因为当界面较多时(有很多Tabbar、tableView),storyBoard会比较乱,而且站在团队开发这一点上,需要专门的人去维护storyBoard。


本文并不是storyBoard的教程,也不需要= =,因为网上已经有大神写的很详细的了(自叹不如啊),本文只是小小记录一下笔者在学习storyBoard的时候遇到的一些问题以及解决技巧。大笑

一、 可以不用mainStoryboard而用自定义的吗?

可以的,第一步新建User Interface中的Storyboard,第二步修改info.plist里面的Main storyboard file base name 为自己的storyboard就可以了。


二、 Terminating app due to uncaught exception'NSGenericException', reason: 'Push segues can only be used when the sourcecontroller is managed by an instance of UINavigationController.

这个错误的意思是,在连接两个viewController的时候,使用了“push”的方式,但是源viewController不是UINavigationController的实例,所以异常,程序终止。

解决这个错误有两种方法:

第一个:是在用“Ctrl”连接两个viewcontroller的时候,不要用“push”的方式,而用“modal”的方式。

第二个:就是添加一个UINavigationController咯。

从library中拉出一个到canvas上。


在这一步的时候网上很多地方都没讲清,我就讲细一点。


可以看到拉出来的Navigation Controller还跟着一个Table viewController。如果你的导航不用包含一个tableView的话,直接删掉即可,没问题。

要注意的是现在这个Navigation Controller只是一个导航栏,没有内容(run一下你只能看到导航栏,然后下面是黑的。。)

然后我们添加一个最简单的viewController,然后在NavigationController按住“ctrl”拖动到viewController上,会弹出一个黑色的框。

说明一下这几个选项的作用,push是用导航(navigation)的形式跳转,modal是以模态的形式展现,custom当然就是自定义了,不用深究。

最后Relationship Segue—root view controller才是我们要选择的。

它的意思是把viewController当作根控制器添加到NavigationController中去,跟跳转没半毛钱关系,请注意。。连接之后符号是:

添加完成之后再想怎么跳转都行,只要在viewController里面添加控件便可以了。

注:同理TabBar也是一样的,也是连接RelationshipSegue来填充内容。


三、storyBoard里面的view怎么和viewController联系起来

在Class里面写出需要的viewController的名字就可以了,就可以连接界面上的输出口了(或者整个界面都写在viewDidLoad里面也行呢)。

像这样view就和viewController联系在一起了,整个逻辑立马就通了。首先通过storyBoard编辑好界面和跳转,再通过Class把对应的控制器连接起来,得到输出口和Action的触发事件。


四、怎么设置storyBoard的开始,即起始场景?

也有两种方法

第一个:

注意到这个箭头了吗,这个就是起始的标志,直接拖动想要修改为起始场景的那个viewController就可以了。

第二个:点击一个viewController

勾上Is Initial ViewController就行了。


Ok,搞定,面朝大海,春暖花开。



杨光(atany)原创,转载请注明博主与博文链接,未经博主允许,禁止任何商业用途。

博文地址:http://blog.csdn.net/yang8456211/article/details/13005429

博客地址:http://blog.csdn.net/yang8456211

—— by atany

本文遵循“署名-非商业用途-保持一致”创作公用协议



猜你喜欢

转载自blog.csdn.net/yang8456211/article/details/13005429
今日推荐