iOS之Protocol的实现

如果想要让一个View多次被利用,那么你的view里可以添加事件,但是实现事件的方法不能写在这里,应该是哪个ViewControllor用到,就让谁去实现,基本的思路是这样的

一.在View的头文件中写一个protocol,写一个这个view的代理,并把事件的函数写下来

二.在view的头文件中把写的代理设置一个属性

三.在view的.m文件中把事件的函数写进来,但是不实现,具体的写法在下面会详细介绍

四.在引用View的ViewControllor中引入代理,初始化并设置其代理为本身,要特别注意的是要给谁初始化要分清

五.完成事件的方法

具体代码如下:

 View的.h文件中

//  BFGoodsListCell.h

//  Chastory

//

//  Created by tf on 13-8-27.

//  Copyright (c) 2013 Gabry. All rights reserved.

//


#import <UIKit/UIKit.h>

@class gift_goods_category;


//添加代理,注意代理的命名方法

@protocol BFGoodsListCellDelegate <NSObject>

//代理方法

-(void)changView;

@end

@interface BFGoodsListCell : UITableViewCell

//设置一个代理属性

@property (weak,nonatomic)id<BFGoodsListCellDelegate>delegate;

@end


在View的.m文件中

@synthesize delegate;

-(void)viewDidLoad

{

 self.RightView =   [[UIImageViewalloc]initWithFrame:CGRectMake(160,0, 145,110)];

        self.RightView.backgroundColor = [UIColorwhiteColor];

        //为图片添加点击动作

        self.RightView.userInteractionEnabled =YES;

        UITapGestureRecognizer * RightTapGesturRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(chang)];

        [self.RightViewaddGestureRecognizer:RightTapGesturRecognizer ];

        [self addSubview:self.RightView];

}

//点击图片对应的方法,但是不在这里实现

-(void)chang

{

这是固定写法,changVeiw 是protocol中的函数方法

    [self.delegate changView];

}


在引用的时候也就是在ViewControllor的.m中,引入所调用界面的头文件和代理

#import "BFScrowAndGoodsListViewController.h"

#import "BFGoodsListCell.h"

@interface BFScrowAndGoodsListViewController ()<BFGoodsListCellDelegate>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值