[英]Why isn't my data being passed through view controllers?
I am trying to pass textfield text from one controller to another controller so I can email it. 我正在尝试将文本字段文本从一个控制器传递到另一个控制器,以便可以通过电子邮件发送。 I am following an example, but I must be missing some little details. 我正在举一个例子,但是我必须缺少一些小细节。 Basically the goal is to pass data textfield text from enteryournamecontroller controller to option controller's nsstring. 基本上,目标是将数据文本字段文本从enteryournamecontroller控制器传递到选项控制器的nsstring。 The nsstring's string variable is being returned null. nsstring的字符串变量返回null。
EnterYourNameController.h EnterYourNameController.h
@interface EnterYourNameController : UIViewController{
UITextField *textField;
id <EnterYourNameController> delegate;
}
@property (strong, nonatomic) NSString *stringEntered;
@property (strong, nonatomic) UITextField *textField;
@property (strong, nonatomic) id delegate;
EnterYourNameController.m EnterYourNameController.m
-(void)button{
stringEntered=textField.text;
((Options *) (self.delegate)).string = stringEntered;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
Options *vc = [storyboard instantiateViewControllerWithIdentifier:@"Options"];
[self.navigationController pushViewController:vc animated:YES];
}
options.h options.h
@interface Options : UIViewController <MFMailComposeViewControllerDelegate> {
NSString *string;
}
@property (strong,nonatomic) NSString* string;
@end
option.m option.m
NSString *emailBody = [NSString stringWithFormat:@"%@",string];
In -(void) button
method, initialize the Options
controller and set the value. 在-(void) button
方法中,初始化Options
控制器并设置值。
-(void)button{
stringEntered=textField.text;
Options *optViewController = [[Options alloc] init];
optViewController.string = stringEntered;
//call your optViewController here
}
I hope, your string in option VC wouldn't live, when you switch between views. 希望在视图之间切换时,选项VC中的字符串不会存在。 So, you must retain string property like this: 因此,您必须像这样保留字符串属性:
-(void)button
{
Options *optViewController = [[Options alloc] init];
optViewController.string = [[NSString stringWithString:textField.text] retain];
//call your optViewController here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.