我坚持将数据从一个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中更改。
我错过了什么 ?对于这类问题,最好的解决方案是什么?感谢名单
答案 0 :(得分:1)
我的猜测是_loginViewController.domainField
当时为nil,这可能是因为视图尚未加载,并且标签是在视图加载时(通过nib)而不是尽快创建的视图控制器对象已创建。
为了不依赖于在传递值时完全加载视图,我会使用一个单独的属性来传递标题,即_loginViewController.domainFieldText = @"Some text";
。然后在viewDidLoad
的{{1}}中,将_loginViewController
的值指定给实际标签。
或者,确保在从其他视图控制器设置文本时创建UILabel实例而不是nil。
答案 1 :(得分:0)
在一个视图控制器中将字符串设置为AppDelegate的property
,您可以从另一个视图控制器中检索它,并将其设置为textField.text