使用多个storyboard

在使用第三方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];

最后,附上原文地址,感谢作者~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容