Embed Segue(嵌入式Segue)Demo

使用EmbedSegue可以将StoryBoard中的源视图控制器跟目标控制器连接起来。防止单个Controller的逻辑过于臃肿。
创建过程。首先在StoryBoard中的Controller上拖入一个ContainerView控件


image.png

为其添加约束。使其布局匹配。
然后将ContainerView自带的Controller删除掉。


image.png

StoryBoard中拖入一个tableViewController,并且从ContainerView拖线到TableViewController,选择Embed模式
image.png

下一步为上一步完成的Segue连线添加Identifier。
image.png

至此在StoryBoard上进行的操作都已经完成。接下来进入代码阶段
从ViewController,包含的TableViewController进行显示之前会先在ViewController上面调用prepareForSegue方法。我们可以在这个方法里面对segue的destinationViewController进行设置

@interface ViewController ()

@property (nonatomic, strong) BaseTableViewController *segueBaseTableViewController;

@end

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    NSArray *dataArray = @[@"第一行",@"第二行",@"第三行",@"第四行"];
    if ([segue.identifier isEqualToString:@"BaseEmbedSegue"]){
        self.segueBaseTableViewController = segue.destinationViewController;
        self.segueBaseTableViewController.arrayData = dataArray;
    }
}

然后将dataArray作为BaseTableViewController的数据源。最终显示效果如下

image.png

布局显示原理为:显示的根控制器为ViewController。在上面包含一个ContainerView。ContainerView内部Embed有一个BaseTableViewController.
最后附上Demo地址:https://github.com/wangqingxue/EmbedSegue

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS 实战开发课程笔记 本贴旨在作为对极客班 《iOS 开发实战》第五期期课程视频重新学习的笔记。目标是建立一个...
    黄穆斌阅读 3,246评论 12 57
  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 5,580评论 3 44
  • /* UIViewController is a generic controller base class th...
    DanDanC阅读 2,054评论 0 2
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,704评论 2 4
  • 昨天我还在写字的时候,爸爸就睡着了,他一睡着,就开始打呼噜,而且声音特别大,吵得我都没办法写字了,我都快烦死了,然...
    段智耀阅读 139评论 0 1

友情链接更多精彩内容