IOS 代理的使用

本文介绍了一种通过代理模式实现iOS应用中不同界面间数值传递的方法,详细展示了如何设置和使用代理,以及如何在视图控制器之间进行有效通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先搞清楚代理是干嘛的,对,代理就是用来传值的

传值?主要是怎样把值传过去
假设有A和B两个界面,A是push到B界面的,需要在A界面使用B界面的一个数值,如何办?(因为在POP回去的时候B界面已经被销毁了,所以传回去的是nil值)
*这时就便可以用代理了( 这里主要举个例子,一般没人这么用代理)

传值,听名字就知道了,必须有个值需要传,那么值在哪个界面呢?对,就在B界面,所以就可以在B界面的BView.h文件写入代理了
//
//  BView.h
//  Created by ST on 16/4/13.
//  Copyright © 2016年 ***. All rights reserved.
//
@class BView;
@protocol BViewDelegate <NSObject>

- (void)returnNum:(NSInteger)num;

@end

@interface BView : UIViewController

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

@end

//传值,就需要在BView.m文件中,使用方法如下
//假如点击一个按钮时把btn的tag值传走
- (void)btnClick:(UIButton*)btn{

        if ([self.delegate respondsToSelector:@selector(returnNum:)]) {
            [self.delegate returnNum:btn.tag];
        }

}

传完值,可以使用该值了,在A界面中,添加B界面的代理,并实现代理方法

@interface AView : UIViewController()<BViewDelegate>

@end

@implementation AView

- (void)viewDidLoad{

    BView *vc = [[BView alloc]init];
    vc.delegate = self;
}

- (void)returnNum:(NSInteger)num{
 //这地方使用该值         
}

/*
       代理一般用在自定义cell或者自定义的view中
*/



@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值