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;
     
    //实现页面传值
    }
    }
  • 相关阅读:
    奇妙的 CSS shapes(CSS图形)
    正确的缩写document。querySelector
    Ajax异步获取html数据中包含js方法无效的解决方法
    关于前端开发中的“收口”思想
    说说JSON和JSONP,也许你会豁然开朗
    Ajax 完整教程(转载)
    GitHub与Git指令入门
    Vue.js——60分钟组件快速入门(下篇)
    Vue.js——60分钟组件快速入门(上篇)
    自定义构造函数
  • 原文地址:https://www.cnblogs.com/zh-li/p/5153631.html
Copyright © 2011-2022 走看看