如何从其他视图控制器更改文本?

时间:2014-08-18 19:40:52

标签: ios

我正在尝试这个

SignUpViewController *userEmail=[[SignUpViewController alloc] init];
userEmail.emailAddress.text=email; 

但无效。

3 个答案:

答案 0 :(得分:1)

当您调用

时,似乎没有正确分配emailAddress(假设UITextfeild)
SignUpViewController *userEmail=[[SignUpViewController alloc] init];

所以,它在初始点是零。

更好的方法是在NSString的SignUpViewController中添加一个公共属性。保存该属性中的值。喜欢下面

SignUpViewController *userEmail=[[SignUpViewController alloc] init];
userEmail.emailString=email;

在SignUpViewController.h文件中添加

@property (nonatomic, strong) NSString *emailString;

在视图中的SignUpViewController.m文件中加载

- (void)viewDidLoad{

 //if you have not used nib or stroyboard init you textfield first
 emailAddress.text=emailString; 

}

答案 1 :(得分:0)

将您的emailAddress @property移动到SignUpViewController的.h文件中(假设您从Storyboard或Interface Builder设置了IBOutlet属性

答案 2 :(得分:0)

我认为更好的方法是使用委托在ViewControllers之间进行通信。有关为委托方法创建协议的快速示例,请参阅this answer,将第二个ViewController设置为第一个委托,然后调用该方法。