简单iOS委托/回调
我有一个简单的视图控制器。在我放的.m文件中 #导入“Manager.h” 有一个按钮,单击该按钮时,将执行以下代码:简单iOS委托/回调,ios,objective-c,callback,delegates,Ios,Objective C,Callback,Delegates,我有一个简单的视图控制器。在我放的.m文件中 #导入“Manager.h” 有一个按钮,单击该按钮时,将执行以下代码: Manager* manager = [[Manager alloc] init]; NSString* str = [manager doit]; NSLog(@"str = %@", str); Manager是NSObject的一个子类。 在Manager.m中,我有以下方法: - (NSString*)doit{ return @"did it"; } 太好
Manager* manager = [[Manager alloc] init];
NSString* str = [manager doit];
NSLog(@"str = %@", str);
Manager是NSObject的一个子类。
在Manager.m中,我有以下方法:
- (NSString*)doit{
return @"did it";
}
太好了。所有这些都如预期的那样起作用
我需要的是,如果可能的话,如果是一个良好的实践,发送/让经理理解,方法doit
应调用ViewController中的另一个方法。某种回调/委托。我如何做到这一点
当我打电话时
[经理doit];
我还想通知您,应该执行ViewController中的一个方法。
我希望你明白我的意思,否则我可以写更多的细节。谢谢是的,您可以使用委托,管理器对象中委托的实现应该如下所示:
@protocol managerDelegate <NSObject>
-(void)doSomthingAndGetThisString: (NSString *)stringText;
@end
@interface Manager : NSObject
@property (nonatomic,strong) id <managerDelegate>delegate;
@end
视图控制器:
ViewController需要保留管理器对象的属性:
@property (nonatomic,strong) Manager *myManager;
现在,当您分配“myObject”时,ViewController应该“签名”以执行委托,如下所示:
_myManager = [Manager new];
_myManager.delegate = self;
当然,我们有以下方法:
-(void)doSomthingAndGetThisString:(NSString*)stringText
它将在“Manager”对象启动时调用它
希望这有帮助在我的情况下不起作用…请检查
_myManager = [Manager new];
_myManager.delegate = self;