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;
     
    //实现页面传值
    }
    }
  • 相关阅读:
    MFC中文件的查找、创建、打开、读写等
    使用DOS比较两个txt文件的差异
    HDU
    LIS(两种方法求最长上升子序列)
    7-17 奥运排行榜 (25 分)
    区间DP
    HDU-1864&&HDU-2602(01背包问题)
    HDU-5968异或密码
    Maximum Value(unique函数,lower_bound()函数,upper_bound()函数的使用)
    博弈结论记录
  • 原文地址:https://www.cnblogs.com/zh-li/p/5153631.html
Copyright © 2011-2022 走看看