在segue中访问导航控制器'target'的属性

时间:2014-02-26 11:58:33

标签: ios objective-c segue

我在场景和导航控制器之间有一个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";
}

1 个答案:

答案 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时,您的控件尚未在该阶段加载,因此您的文本字段为零。