IOS目标C – 在两个视图控制器之间传递参数时出错
我有两个viewControllers:
RegisterViewController&Register2ViewController
我有一个从RegisterViewController到Register2ViewController的segue。
我想在Register2ViewController中设置textfielduser
的值,其值为用户在RegisterViewController中的textfieldemail
中input的值。
到目前为止,这是我所做的。
在RegisterViewController.m
- (IBAction)NextPage:(UIButton *)sender { [self performSegueWithIdentifier:@"toRegister2" sender:self]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"toRegister2"]) { Register2ViewController *controller = (Register2ViewController *)segue.destinationViewController; controller.user.text = self.email.text; }
但是当我运行并填写RegisterViewController中的文本字段的值,并转到Register2ViewController的文本字段用户是空的,你能帮助我吗? 谢谢
不要直接将值传递给textField,请尝试使用NSString传递文本。 声明@property (strong,nonatomic) NSString *userName;
在Register2ViewController
。 然后将值传递给string
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"toRegister2"]) { Register2ViewController *controller = (Register2ViewController *)segue.destinationViewController; controller.useName= self.email.text; }
然后在Register2ViewController
viewDidLoad
中,像这样在textField上设置stringself.user.text=self.userName
。 试着做这个。
controller.user.text = self.email.text;
此时, Register2ViewController
尚未加载到内存中,这就是为什么你正面临这个问题。
在Register2ViewController.h
保留一个NSString属性,并在这里设置该string的值。 然后,在Register2ViewController
viewDidLoad中,将该string设置为UITextField的文本。