您的位置:首页 > 移动开发 > Objective-C

IOS开发学习31 ObjectC 实现自定义Event

2015-06-03 17:08 531 查看
跨类的通讯,可以使用Notification,也可以使用Event。这里记录一下实现Event的方法:

首先,定义的类要从UIControl继承。

SocketUtils类 子control

SocketUtils头文件

#import <UIKit/UIKit.h>
#import "AsyncSocket.h"

@interface SocketUtils : UIControl{

}

enum {
UIControlEventAlert=0x00000001<<25, //可以自定义的从24 到27
UIControlEventError=0x00000001<<26
};


SocketUtils.m文件

触发事件的方法:

[self sendActionsForControlEvents:UIControlEventAlert];


使用SocketUtils的目标类

头文件

#import <UIKit/UIKit.h>
#import "WasherSocketUtils.h"
@interface Head : UIView
@property (nonatomic,strong)SocketUtils* SocketUtils;


m文件

#import "Head.h"

@implementation Head
@synthesize SocketUtils=_SocketUtils;
-(id)init{
_SocketUtils=[[SocketUtils alloc]init];
///注册事件,这句是关键
[_SocketUtils addTarget:self action:@selector(socketEvent:) forControlEvents:UIControlEventAlert];

return [super init];
}
-(void)socketEvent:(SocketUtils*)paramSender{
NSLog(@"event by xie:%@",paramSender);
}


在退出viewcontroller的时候,最好把事件注册移除。

-(void)viewWillDisappear:(BOOL)animated{
[_SocketUtils removeTarget:self action:@selector(socketEvent:) forControlEvents:UIControlEventAlert];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: