代理传值

场景分析

  • 有两个页面:第1个页面、第2个页面。
  • 第1个页面上有一个label,和一个按钮。
  • 第2个页面上有一个txetField,和一个按钮。
  • 点击第1个页面的按钮会跳转到第2个页面。
  • 在第二个页面往txetField中可以输入文字,点击按钮会返回到第1个页面,并且会将txetField中的文字传到第1个页面并显示到第1个页面的label上。

分析

  • 因为第2个页面想要将自己的数据显示在第1个页面,但是自己又不知道该如何展示,因为第2个页面作为委托方,第1个页面作为被委托方

代码

第2个页面

//.h文件

//第1步:声明代理
@protocol TwoDelegate <NSObject>

//代理方法
-(void)input:(NSString *)text;

@end

//第2步:生成一个成员变量,便于访问设置代理
@interface TwoViewController : UIViewController

@property(nonatomic, assign)id <TwoDelegate> delegate;

@end


//.m文件
//第2个页面中按钮的点击式事件
-(void)backOnClick:(UIButton *)sender{
    //第3步:让代理去执行自己的方法,取得要传的值
    [self.delegate input:self.textf.text];
    //返回上一页
    [self dismissViewControllerAnimated:YES completion:nil];
}

第1个页面

//.m文件中

//第4步:添加代理
@interface OneViewController ()<TwoDelegate>
@end

//点击跳转到第二个页面按钮的点击事件
-(void) onClick:(UIButton *)button{
    TwoViewController *two = [[TwoViewController alloc]init];
    //第5步:设置代理
    two.delegate = self;

    /*
    *跳转操作
    */
}
//实现代理方法
-(void) input:(NSString *)text{
    self.label.text = text;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值