【发布时间】:2014-03-05 15:46:38
【问题描述】:
我有一个名为 TargetView 的子类 UIView,它包含在名为 MainViewController 的 UIViewController 中。我想将 MainViewController 设置为 TargetView 的委托,以便 MainViewController 可以接收来自子视图(TargetView)的消息。
在我的 MainViewController (UIViewController) 标题中,我有以下内容:
#import <UIKit/UIKit.h>
#import "TargetView.h"
@class TargetView;
@interface MainViewController : UIViewController <TargetViewDelegate>
@property (strong, nonatomic) IBOutlet TargetView *target;
@property (strong, nonatomic) IBOutlet UILabel *lblResults;
@end
当我在接口声明中设置 TargetViewDelegate 时,它会显示在代码完成中,因此它知道它在那里,但随后构建失败并显示消息:找不到协议声明..."
在我的 TargetView (UIView) 类中,我有以下内容:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "MainViewController.h"
@protocol TargetViewDelegate
@required
-(void)receivedTargetTap;
@end
@interface TargetView : UIView{
id<TargetViewDelegate> delegate;
}
@property (nonatomic,strong) NSString *lblResults;
@property (nonatomic,weak) id<TargetViewDelegate> delegate;
@end
创建自定义代表对我来说是未知领域。谁能告诉我我做错了什么?谢谢!
【问题讨论】:
-
您可以尝试使用以下命令更改您的@protocol:@protocol TargetViewDelegate
吗? -
我将发布一个答案,并对您的代码进行一些修改。
-
需要在del的声明后加上
。
标签: ios objective-c delegates