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的文本。