自定义方式实现回调 具体代码:
1、创建一个工程名CallBackDemo,在ViewController.xib文件加入一个button按钮,ViewController.h代码:
1 |
#import
<UIKit/UIKit.h> |
2 |
@interface
ViewController : UIViewController{ |
3 |
IBOutlet
UIButton *clickButton; |
6 |
-
(IBAction)onClickButtonTouchUpInside:(id)sender; |
上述第7行代码,便是点击button触发的事件操作。
2、ViewController.m代码:
09 |
#import
"ViewController.h" |
10 |
#import
"EventObject.h" |
12 |
@implementation
ViewController |
18 |
-
(IBAction)onClickButtonTouchUpInside:(id)sender |
20 |
NSLog(@"onClickbutton..."); |
21 |
;
EventObject *eventObject = [[[EventObject alloc] init] autorelease]; |
22 |
[eventObject
setDelegateObject:self setBackFunctionName:@"handleBackFunction"]; |
23 |
;
[eventObject handleEventObject]; |
26 |
-
(void)handleBackFunction |
28 |
NSLog(@"执行完eventObject函数之后的具体的操作。。。。"); |
33 |
[super
viewDidUnload]; |
此类使用到了EventObject类,下面看一下EventObject类的代码。
3、EventObject.h代码:
1 |
@interface
EventObject : NSObject { |
3 |
NSString
*callbackFunction; |
6 |
-
(void)handleEventObject; |
7 |
-
(void)setDelegateObject:(id)cbobject
setBackFunctionName:(NSString *)selectorName; |
EventObject.m代码:
01 |
#import
"EventObject.h" |
03 |
@implementation
EventObject |
04 |
-
(void)handleEventObject |
09 |
SEL
func_selector = NSSelectorFromString(callbackFunction); |
10 |
if ([callbackObject
respondsToSelector:func_selector]) { |
12 |
;
[callbackObject performSelector:func_selector]; |
19 |
-
(void)setDelegateObject:(id)cbobject
setBackFunctionName:(NSString *)selectorName |
21 |
callbackObject
= cbobject; |
22 |
callbackFunction
= selectorName; |
具体说明:
点击button触发 onClickButtonTouchUpInside函数,此函数中调用EventObject类的handleEventObject函数,当执行完handleEventObject函数,回调ViewController类中的handleBackFunction函数。