【问题标题】:Ios:Delegete method does not calledios:未调用委托方法
【发布时间】: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


【解决方案1】:
AnotherViewController * obj = [AnotherViewController alloc]init];
obj.delegate =self;

[self.navigationController pushViewController:obj];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    相关资源
    最近更新 更多