zoukankan      html  css  js  c++  java
  • IOS页面(控制器之间)传值之代理

    控制器B要传值给控制器A
    1.需要一个协议,协议里有一个方法,这个方法的参数即是要传递的参数
    @protocol chuanzhi <NSObject>

    @required
    -(void)chuanzhi:(NSString*)str1 WithString2:(NSString*)string2;

    @end
     
    2.需要控制器B中有一个实现这个协议的代理属性
    @property(assign,nonatomic)id<chuanzhi>delegate;
     
    3.用这个代理属性调用代理里的方法,因为这个方法需要参数,所以就要给这个方法参数,这个时候正好把要传递给控制器A的参数作为协议方法的实参。
    //在点击我们销毁模态试图的方法里增加一个代理调用协议的方法
    - (IBAction)disAction:(UIButton *)sender {
       
       
        [self dismissViewControllerAnimated:YES completion:^{
           
            //在点击我们销毁模态试图的方法里增加一个代理调用协议的方法
            [self.delegate chuanzhi:self.textFiled1.text WithString2:self.textFiled2.text];
           
        }];
    4.第3步只是让一个并没有实际代理的代理属性调用了协议方法,具体方法的内容需要控制器A来实现(即A实现了这个协议并成为代理)。
      @interface oneViewController : UIViewController<chuanzhi>   控制器A
     
    //实现代理的方法
    twoViewController* twoVC = [[twoViewController alloc]init];
        //成为twoVC的代理  twoVC即控制器B
        twoVC.delegate = self;
    -(void)chuanzhi:(NSString*)str1 WithString2:(NSString*)string2{
     
        self.textFiled1.text = str1; 
        self.textFiled2.text = string2;
     
    //实现页面传值
    }
    }
  • 相关阅读:
    使用公用表表达式(CTE)简化嵌套SQL WITH AS的含义
    C#中Array与ArrayList的区别
    Asp.net 网页中的嵌入式代码
    Asp.net核心对象
    Latex学习(载入图片并居中)
    matlab练习程序(生成加密p文件)
    matlab练习程序(直方图反向投影)
    matlab练习程序(非负矩阵分解)
    matlab练习程序(PSNR)
    matlab练习程序(动感模糊)
  • 原文地址:https://www.cnblogs.com/zh-li/p/5153631.html
Copyright © 2011-2022 走看看