我在场景和导航控制器之间有一个segue。导航控制器嵌入一个视图,该视图具有我想在prepareForSegue
方法中初始化的文本字段。
所以它是:
场景A - >导航控制器 - >场景B
但是,在场景A.prepareForSegue
中,仅分配了导航控制器的属性,并且所有场景B的属性仍为零。所以,如果我这样做:
UINavigationController *cont=[segue destinationViewController];
AddToDoItemViewController *atodo=(AddToDoItemViewController*)cont.topViewController;
[atodo preparetextfield2];
它不起作用,因为待办事项中的文本字段仍设置为nil。那么我该如何解决这个问题?
这是preparetextfield2方法:
-(void)preparetextfield2
{
self.textField.text=@"test";
}
答案 0 :(得分:1)
在AddToDoItemViewController.h文件中创建属性以保留值,例如:
@property(nonatomic, strong) NSString *myString;
并在viewDidLoad中更新您的文本字段:
-(void)viewDidLoad{
//...Your code
self.textField.text = self.myString;
}
在preparetextfield2中只需更新字符串:
-(void)preparetextfield2 {
self.myString = @"test";
}
发生这种情况是因为当您调用prepareForSegue时,您的控件尚未在该阶段加载,因此您的文本字段为零。