zoukankan      html  css  js  c++  java
  • [iOS]segue与delegate在ViewController返回的时候进行反向回传参数

    OC版本:

      需求描述:

     
        故事板中,VIEW1与VIEW2有一条SEGUE连线。点击VIEW1中的按钮跳转至VIEW2,并且从VIEW1中传递值给VIEW2。
     
     
      实现:
     
      VIEW1.m
     
      添加下面的事件方法,该方法在视图跳转时被触发。

      -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
      {   

          if([segue.identifier isEqualToString:@"goView2"]) //"goView2"是SEGUE连线的标识
          {        

              id theSegue = segue.destinationViewController;

              [theSegue setValue:@"这里是要传递的值" forKey:@"strTtile"];

          }           

      }

     
      VIEW2.h
       
      定义一个属性来接受SEGUE传递过来的值:
      @property(nonatomic,weak)NSString *strTtile;
     
     
      VIEW2.m

      - (void)viewDidLoad

      {

          [super viewDidLoad];

          // Do any additional setup after loading the view.

          NSLog(@"接收到的值为: %@",  strTtile);

      }

    Swift版本:

      我们经常会使用navigationViewController,使用segue拉拉线,就可以实现页面跳转,使用prepareForSegue方便进行参数的正向传递,但我们也许也有的业务会是反向的传递参数,这个时候需要使用delegate。 
    假设有两个vc,事先做好了segue拉线,设置了按钮啥的,然后可以直接正向跳转,以及因为在一个navigation里面所以,第二个vc有个默认的back按钮可以反向的跳转,第一个是avc,第二个是bvc, 在bvc中我们写一个协议protocol,当然这个协议是写在类外面的,只是和类在同一个swift文件中:

      

      然后我们在avc中要参照这个协议:

      另外在bvc中的类中,需要实例化这个delegate:

      并且在需要的地方进行这个委托中的参数变化:

      最后就可以实现这个反向传递参数了,委托协议里面可以写方法。

  • 相关阅读:
    管道和FIFO
    2.Qt Creator的使用
    1.新手上路:Windows下,配置Qt环境
    系统数据文件和信息
    使用Python与数据库交互
    与文件和目录操作相关的函数
    使用Python处理Excel文件的一些代码示例
    使用Python处理CSV文件的一些代码示例
    【Jenkins】发布报错“error: RPC failed; curl 18 transfer closed with outstanding read data remaining”
    Linux之文本处理命令
  • 原文地址:https://www.cnblogs.com/ChouDanDan/p/5213218.html
Copyright © 2011-2022 走看看