所以我有一个问题。 有人可以告诉我这行代码调用(协议)方法的问题
[self.delegate poplogin];
poplogin是方法名称,由于某种原因它不起作用。 它没有调用方法poplogin
供参考:
@property(nonatomic,retain) id<loginAuthDelegate> delegate;
让我解释一下案例
所以我想说我有一个班级abc.h
@protocol loginAuthDelegate <NSObject>
-(void)poplogin;
@end
界面
之后@property(nonatomic,retain) id<loginAuthDelegate> delegate;
in .m i am just calling the Delegate and @synthesize it
[self.delegate poplogin];
not i have another files
let say def.h
i am importing the Class abc.h
@interface def : UIViewController<loginAuthDelegate>
def.m
-(void)poplogin
{
NSLog(@"Delegate doesn't respond to here");
vmpaSecureLogin *ivc = [[vmpaSecureLogin alloc] init];
ivc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:ivc animated:YES];
}
答案 0 :(得分:2)
这可能是因为self.delegate
是nil
。
您可能忘记将对象的delegate
影响到您实现委托方法的其他对象,例如ViewController或其他对象。