在ViewControllers之间将数据传递给UITextField

时间:2011-07-06 12:06:51

标签: objective-c

我坚持将数据从一个ViewController传递到另一个。场景如下: 我有2个ViewControllers命名:SearchDomainController和LoginViewController。我想要做的是将SearchDomainController中的字符串值传递给LoginViewController中的UITExtfield。

在LoginViewController中,我声明了IBOutlet UITextField *domainField;,还声明了属性@property(nonatomic,retain) UITextField *domainField

问题是当我在SearchDomainController中创建一个新的LoginViewController实例并尝试_loginViewController.domainField.text = @"Some text"; 在LoginViewController上,文本永远不会在UItextField中更改。 我错过了什么 ?对于这类问题,最好的解决方案是什么?感谢名单

2 个答案:

答案 0 :(得分:1)

我的猜测是_loginViewController.domainField当时为nil,这可能是因为视图尚未加载,并且标签是在视图加载时(通过nib)而不是尽快创建的视图控制器对象已创建。

为了不依赖于在传递值时完全加载视图,我会使用一个单独的属性来传递标题,即_loginViewController.domainFieldText = @"Some text";。然后在viewDidLoad的{​​{1}}中,将_loginViewController的值指定给实际标签。

或者,确保在从其他视图控制器设置文本时创建UILabel实例而不是nil。

答案 1 :(得分:0)

在一个视图控制器中将字符串设置为AppDelegate的property,您可以从另一个视图控制器中检索它,并将其设置为textField.text