0
我在使用委托方法时遇到困难。delagate不能在2个视图控制器之间工作
我有2个观点。在视图A中,我使用委托来说我按下了一个按钮来查看B. 视图B很好地收到了消息。 我想发送一条消息说,视图B已收到消息。
因此,从A代表到B代表我的代表工作,但B到A不工作。
.h:
#import <UIKit/UIKit.h>
@protocol ButtonProtocolName <NSObject>
- (void)toucheEnter:(id)sender;
@end
@interface ClavierKsViewController : UIViewController
@property (nonatomic, assign) id <ButtonProtocolName> delegate;
@end
.m
#import "ClavierKsViewController.h"
@interface ClavierKsViewController()
@end
@implementation ClavierKsViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(IBAction)toucheEntreeClavier:(id)sender{
[self.delegate toucheEnter:sender];
}
@end
现在来看了Bh:
#import "ClavierKsViewController.h"
@interface CaisseViewController : UIViewController<ButtonProtocolName>
@property (nonatomic,retain) ClavierKsViewController *clavierKsView;
BM
- (void)viewDidLoad
{
[super viewDidLoad];
clavierKsView = [self.storyboard instantiateViewControllerWithIdentifier:@"clavierKsView"];
clavierKsView.delegate=self;
}
-(void)toucheEnter:(id)sender{
NSLog(@"valider");
}
在这个意义上它的工作原理 当我创建从视图B中的委托基于同样的方式查看A在,我仍然得到相同的消息:找不到委托人的协议声明
您是否尝试从CaisseViewController发送消息到'ClavierKsViewController'?因此'CaisseViewController'持有'ClavierKsViewController'的实例,你可以发送消息到'ClavierKsViewController'而不是创建另一个委托。 – 2014-10-09 01:18:05
如何发送消息? – 7eleven 2014-10-09 01:46:33
像往常一样['claverKsView someMessage]' – 2014-10-09 01:47:28