顺传|逆传

顺传

  • 数据顺传:从上一级传递数据给下一级
    • 在数据接收的控制器当中定义属性,准备接收数据
    • 在数据的当前控制器中,获取目标控制器
    • 给目标控制器中对应的属性进行赋值
  • 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文件中调用代理方法
    • 外三步
      • 设置代理
      • 遵守协议
      • 实现代理方法

你可能感兴趣的:(顺传|逆传)