自定义方式实现回调 具体代码:
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函数。