IOS 代理的使用

来源:互联网 发布:java模拟器安卓版6.1 编辑:程序博客网 时间:2024/06/10 15:17
首先搞清楚代理是干嘛的,对,代理就是用来传值的传值?主要是怎样把值传过去假设有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
原创粉丝点击