顺传|逆传

顺传

  • 数据顺传:从上一级传递数据给下一级
    • 在数据接收的控制器当中定义属性,准备接收数据
    • 在数据的当前控制器中,获取目标控制器
    • 给目标控制器中对应的属性进行赋值
  • storyboard实现顺传
    • 在执行performSegueWithIdentifier跳转之前,会调用一个方法prepareForSegue:sender:在此方法中,可以获取要跳转的控制器,可以给要跳转的控制器传递一些数据
    • sourceViewController:获取当前控制器
    • destinationViewController:获取目标控制器
    • segue底层实现
  • Storyboard Segue只依托于storyboard
  • performSegueWithIdentifier:底层实现
    • 1.根据标识到当前控制器所在的storyboard中去寻找, 有没有该指定标识的segue
    • 2.当找到标识之后,就会创建UIStoryboardSegue对象
    • 3.会把当前控制器设置为UIStoryboard的源控制器;segue.source ViewController = self;
    • 4.会创建segue对象箭头指向的控制器,把它设置为segue的目标控制器segue.destinationViewController = 箭头指向的控制器
    • 5.就会调用当前控制器的prepareForSegue:方法,告诉segue已经准备完毕,可以拿到要跳转的控制器,有没有数据要传给下一个控制器,如果有,可以在该方法中进行
    • 6.最后会调用,segue的[segue perform],此方法才是真正的跳转push
  • 纯代码方式实现顺传非常简单,直接push,拿到值直接设置title,因为在创建的时候就已经拿到了目标控制器

逆传

  • 代理方式实现逆传,进行类与类之间的传值

  • 什么时候使用代理?

    • 当一个对象发生某一件事时,想要把自己的东西传给别人,或者是通知别人做某些事情,使用代理
  • 代理使用场景

    • 上下级之间,通常是他的上一级成为他的代理
  • 代理的使用步骤

    • 里三步
      • 定义协议
      • 定义代理属性
      • .m文件中调用代理方法
    • 外三步
      • 设置代理
      • 遵守协议
      • 实现代理方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 顺传值 (A控制器->到B控制器,将A控制器中的某些数据传递给B控制器) 上一级控制器传递给下一级控制器,直接能拿...
    Mario_ZJ阅读 567评论 3 1
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,484评论 2 4
  • iOS 实战开发课程笔记 本贴旨在作为对极客班 《iOS 开发实战》第五期期课程视频重新学习的笔记。目标是建立一个...
    黄穆斌阅读 3,105评论 12 57
  • 星星是夜的眼睛。夜跑的人们是夜的魂。玉兔湾村的水泥路上就有一群夜跑的人。 大表姐有腰椎病,医生说,必须锻炼。她就成...
    邵村树阅读 330评论 0 0
  • 斌云曲上三千士 不闻轩辕断肠归 今朝亦是红颈年 我无归途如虹茫
    纷纷扰扰的世界里阅读 192评论 0 0