我想爲我的按鈕實現一個委託方法...我想我做的一切正確,但不明白爲什麼我不能使它工作...我的按鈕不響應任何命令看起來死了......委託方法不工作
我的按鈕位於視圖控制器「B」,它必須執行位於ViewController中「A」
這是我的代碼功能
viewControllerB.h
@protocol UNI_TableLoginDelegate <NSObject>
-(void)showPassw;
@end
@interface viewControllerB : UITableViewController
@property (nonatomic, weak) id <UNI_TableLoginDelegate> delegate;
@end
viewControllerB.m(這裏我通過連接我的故事板的操作按鈕)
@implementation viewControllerB
@synthesize delegate;
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)showReset:(id)sender {
[delegate showPassw];
}
viewControllerA.m
#import "viewControllerB.h"
@interface viewControllerA() <UNI_TableLoginDelegate>
- (void)viewDidLoad {
[super viewDidLoad];
viewControllerB *tableLogin = [[viewControllerB alloc] init];
tableLogin.delegate = self;
}
//Delegate Method
-(void)showPassw {
if (containerTable.frame.origin.y == 56) {
NSLog(@"ssss");
}
else {
NSLog(@"hdhdh");
}
}
哪裏的'價值delegate'設置?使用'@ synthesize'多年來一直不是很好的做法,它不是必需的,帶有下劃線「_」的實例變量將自動生成。最佳做法是不直接使用屬性iVars,而是使用'self.','[self.delegate showPassw];' – zaph
你怎樣調用viewCntoller B?你如何設置代表?你在使用performSegue方法嗎? –
我刪除了thesyntesize並採用self.delegate作爲你的建議,但是當我使用按鈕仍然沒有得到任何動作 – kAiN