在使用第三方SDK时看到别人项目中使用的StoryBoard很炫,就去网上搜索了一番,发现StoryBoard很有趣,所以就来写篇文章记录一下,一点简单的使用,希望大神们赐教~
下面是我使用的是Xcode版本
image.png
新建项目
我们来新建一个项目,然后点开StoryBoard,大概是这样子的,我标记红圈的部分就是程序的入口,如果把右边的选项去掉,左边的箭头也就没有了。好了,接下来我们来多添加一点东西。
image.png
拆分storyboard
下面是我随便拖的一些视图
image.png
效果是这样的
未命名.gif
可能有些项目要要分模块开发,又或者这么多看起来太臃肿,接下来就要把这些再分一个StoryBoard出来,按住shift键,同时选择后面三个视图控制器之后,点击Editor->Refactor to Storyboard...
image.png
这里命名一个新的名字First.storyboard,点击保存
image.png
你就会发现有两个Storyboard,是这样的。。。
image.png
image.png
我们再次运行,是和刚才一样的效果
另一种方式跳转
大家是否还记得Main.storyboard中有两个Itme,点击第一个Item上面的按钮跳转了三次,但是我第二个Itme也想跳转怎么办?
打开First.storyboard,给黄色的页面写一个ID 叫abc
image.png
好了之后我们再回到Main.storyboard
image.png
好了,再运行一下,是不是也可以跳转?
使用代码跳转
第一种:给segue标记个Identifier再用代码触发
我们为storyboard中绿色的视图新建一个类,与绿色的绑定起来
image.png
在拖一个黄色的按钮上去,添加点击事件,在事件添加一句代码
//执行标识符为abc的Segue的操作
[self performSegueWithIdentifier:@"abc" sender:self];
image.png
第二种:能过取得storyboard文件里的viewController再用常规方法跳转,先设置storyboard里viewController的标志Storyboard ID,
再用代码这样跳转:
//通过Storyboard的名字加载 Storyboard
UIStoryboard * board = [UIStoryboard storyboardWithName:@"First" bundle:nil];
//通过ViewController在Storyboard中的ID来获取ViewController
UIViewController * VC = [board instantiateViewControllerWithIdentifier:@"abc"];
[self.navigationController pushViewController:VC animated:YES];
//加载本ViewController所在的Storyboard中查找标识符为aaaaaa的ViewController
UIViewController * vc = [[self storyboard] instantiateViewControllerWithIdentifier:@"aaaaaa"];
[self.navigationController pushViewController:vc animated:YES];
最后,附上原文地址,感谢作者~