如何在UIView类中定义委托

时间:2014-06-24 04:32:17

标签: delegates protocols ios7.1

我有UIView班和UIViewController班。我想在完成UIView类中的某个任务后需要调用UIViewController类中的方法。所以我确实喜欢这个。

在我的ViewClass

`

#import "IntroView.h"
#import "FirstViewController.h"



@protocol SampleProtocolDelegate <NSObject>;

@required
- (void) processCompleted;
@end


@interface IntroControll : UIView<UIScrollViewDelegate> {


id <SampleProtocolDelegate> _delegate;
}



@property (nonatomic,strong) id delegate;

-(void)startSampleProcess; // Instance method

`

然后在My ViewController类中

`

#import "IntroControll.h"




@interface FirstViewController : UIViewController<SampleProtocolDelegate>
{

IntroControll *delegate;

}

`

但它在@interface FirstViewController : UIViewController<SampleProtocolDelegate>

中显示错误

“无法找到'SampleProtocolDelegate'的协议声明”

为什么会这样,我该如何解决这个问题。

请帮帮我 谢谢

1 个答案:

答案 0 :(得分:0)

问题出现是因为您在IntroControll.h中导入FirstViewController.h。然后你完成了协议声明。

因此首先处理FirstViewController.h,因为ImtroControll.h尚未处理,所以无法找到协议声明。

如果不需要,从IntoControll.h中删除FirstViewController.h的导入。否则转发声明FirstViewController。

#import "IntroView.h"

@class FirstViewController;

@protocol SampleProtocolDelegate <NSObject>
@required
- (void) processCompleted;
@end

在IntroControll.m文件中导入FirstViewController.h。