我试图在stackoverflow上复制几篇文章,以传递数据并使用2个视图控制器进行调用,但是没有成功。
所以我有 ViewController(1st)和 EditableViewController(2nd)
当我在 EditableViewController(2nd)中时,我单击一个按钮,该按钮使用 SendTextToViewController 方法触发IBAction。
之后,我期望在我的 ViewController(1st)中运行方法 didReceiveMessage ,并使用NSLog向我展示“BANANAS”。
最终,我想将数据从我的第二个控制器发送到第一个控制器。
我很难理解这代表的事情。我已经阅读了十几个教程,视频和文档,试图弄清楚这一点。我想我快到了,但是似乎无法弄清楚为什么它不起作用。
谁能帮我吗?代码在下面。
谢谢!
// ViewController.h
#import <UIKit/UIKit.h>
@protocol ViewControllerDelegate <NSObject>
-(void)didReceiveMessage:(NSString *)string;
@end
@interface ViewController : UIViewController <ViewControllerDelegate>;
@end
// ViewController.m
#import "ViewController.h"
@implementation ViewController
-(void)didReceiveMessage:(NSString *)string{
NSLog(@"BANANAS");
}
@end
// EditableViewController.h
#import <UIKit/UIKit.h>
@protocol ViewControllerDelegate;
@interface EditableViewController : UIViewController
@property (nonatomic, weak) id<ViewControllerDelegate> delegate;
@property (nonatomic, weak) IBOutlet UITextField *TextField;
@property (nonatomic, weak) IBOutlet UIButton *SendTextToViewController;
- (IBAction)SendTextToViewController:(id)sender;
@end
// EditableViewController.m
#import "EditableViewController.h"
#import "ViewController.h"
@implementation EditableViewController
@synthesize delegate;
@synthesize TextField;
@synthesize SendTextToViewController;
- (IBAction)SendTextToViewController:(id)sender {
[delegate didReceiveMessage:TextField.text];
}
- (void)viewDidUnload {
[self setTextField:nil];
[super viewDidUnload];
}
@end
最佳答案
您以相反的方式完成了此操作...