使用prepareForSegue在View Controllers之间传递数据

时间:2012-08-20 20:02:46

标签: ios storyboard segue

我正在尝试创建一个简单的项目,以便在我使用故事板设置的两个视图控制器之间传递一些数据。

项目非常简单 - 在第一页上我有一个文本字段,然后一个按钮将用户带到第二个视图控制器,在那里希望显示文本,但是没有运气。

我正在使用Sered的'Modal'样式,这是代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

ViewController2 *vc2;

vc2 = [segue destinationViewController];

vc2.label.text = textField.text;    

}

如果有人能帮我解决正确的代码并向我解释为什么我现在所做的不起作用,我将不胜感激。我一直在四处寻找,虽然看起来有多种变化,但这似乎对我来说非常正确。

我两周前才从控制台转移到iOS,所以请保持简单!

提前致谢!

2 个答案:

答案 0 :(得分:2)

您的问题(可能!)是destinationViewController尚未在您尝试更新它时加载其视图层次结构。您可以通过以下方式验证:

NSLog(@"Label: %@", vc2.label);

解决这个问题的方法是在ViewController2中创建一个属性,它只是一个字符串,而是设置它。然后,当viewDidLoad:ViewController2中执行时,将字符串属性复制到标签的文本中。

答案 1 :(得分:2)

我知道它的丑陋,但尝试转换destinationviewcontroller。我已经尝试过,似乎有助于解决这种情况。

ViewController2 * vc2 =(ViewController *)[segue destinationviewcontroller];

另外,如果你正在使用故事板,你是在uinavigationcontroller还是没有?