我有两个viewControllers:
RegisterViewController& Register2ViewController
我有一个从RegisterViewController到Register2ViewController的segue。
我想在Register2ViewController中设置textfielduser
的值,其值为用户在RegisterViewController中的textfieldemail
中输入的值。
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中运行并填充textfields的值并转到Register2ViewController时,textfield用户是空的,你能帮我吗?谢谢
答案 0 :(得分:4)
controller.user.text = self.email.text;
此时,Register2ViewController
尚未加载到内存中,这就是您遇到此问题的原因。
在Register2ViewController.h
中保留NSString属性,并在此处设置该字符串的值。
然后,在Register2ViewController
的viewDidLoad中,将该字符串设置为UITextField的文本。
答案 1 :(得分:2)
尝试使用NSString传递文本,而不是直接将值传递给textField。在@property (strong,nonatomic) NSString *userName;
中声明Register2ViewController
。然后将值传递给字符串,如
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"toRegister2"]) {
Register2ViewController *controller = (Register2ViewController *)segue.destinationViewController;
controller.useName= self.email.text;
}
然后在viewDidLoad
的{{1}}中,在textField上设置字符串,如此Register2ViewController
。
试着这样做。