【发布时间】:2016-07-16 15:35:55
【问题描述】:
我正在尝试调用委托方法,但无法正常工作。我的错误在哪里?
这是我声明@protocol、委托和方法的类:
#import "EEBaseVC.h"
@protocol EEInterstitialScreenDelegete;
@interface EEInterstitialScreen : EEBaseVC
@property(nonatomic,strong) id <EEInterstitialScreenDelegete> delegete;
@end
@protocol EEInterstitialScreenDelegete <NSObject>
-(void)interstitialScreenUpdateInfo:(EEInterstitialScreen *)interstitialscreen;
@end
这是另一个 ViewController 中委托方法的声明:
#pragma mark - EEInterstitialScreenDelegate
-(void)interstitialScreenUpdateInfo:(EEInterstitialScreen *)interstitialscreen
{
NSLog("hello");
}
我必须做一些事情才能在之前的视图控制器中调用这个方法。但是不满足if条件:
if (_delegete && [_delegete respondsToSelector:@selector(interstitialScreenUpdateInfo:)] ) {
[_delegete interstitialScreenUpdateInfo:self];
}
【问题讨论】:
-
你真的设置了委托吗?代表是否在某处强烈引用了它?
-
是的,我已经设置了删除,我已经声明了方法。
-
您是否在另一个 ViewController 中设置了
target.delegate = self(目标 = EEInterstitialScreen 实例)? Ppl 通常会跑来发布因为忘记了这一点 -
在“if”上设置断点,看看哪里出了问题。我的猜测是 _delegete 为零。
-
是的,我已经解决了 EEInterstitialScreen*is=[[EEInterstitialScreen alloc]init]; is.delete=self;
标签: ios uiviewcontroller delegates xcode7