我正在開發iPhone應用程序。我自定義導航欄的titleview。標題視圖包含一個按鈕,我還定義了委託方法以支持按鈕單擊事件。但是,當點擊按鈕時,委託不能被執行。我不知道爲什麼? 下面是我的代碼: UPDelegate.h爲什麼我的iPhone應用程序無法調用委託方法
@protocol UPDelegate <NSObject>
@optional
-(void)buttonClick;
@end
TitleView.h
#import <UIKit/UIKit.h>
#import "UPDelegate.h"
@interface TitleView :UIView
@property (nonatomic, unsafe_unretained) id<UPDelegate> delegate;
-(id)initWithCustomTitleView;
@end
TitleView.m
@synthesize delegate;
-(id)initWithCustomTitleView
{
self = [super init];
if (self) {
UIButton *titleButton = [UIButton buttonWithType:UIBUttonTypeCustom];
titleButton.frame = CGRectMake(0, 0, 20, 44);
[titleButton setTitle:@"ABC" forState:UIControlStateNormal];
// add action
[titleButton addTarget:delegate action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:titleButton];
}
return self;
}
在我的ViewController,我實現如下的protocal:
MyViewController.h
@interface MyViewController : UIViewController<UPDelegate>
在.m文件中,我寫了委託方法,但不能執行。 MyViewController.m
-(void)buttonClick{
NSLog("click title button");
}
你在哪裏設置委託? – Pierre
你在哪裏「設置」委託給你的MyViewController? – FilmJ