2012-05-28 29 views
1

有两个带有嵌入式导航控制器的视图控制器。第一个有一个桌子视图。第二个名为“AfterTableViewController”的标签中有一个标签。在故事板中的视图控制器之间传递数据

我想能够在第一个视图控制器实现文件中的prepareForSegue方法中设置标签。

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    AfterTableViewController *afc = (AfterTableViewController*) segue.destinationViewController; 
    afc.title = @"the title"; // this works 
    afc.theLabel.text = @"hello"; // this doesn't work 
} 

我应该如何设置标签?

回答

2

看到你只是想设置标签的文本值,这将是最好在你的AfterTableViewController创建此UILabel的文本的其他的NSString属性,然后构建theLabel时使用它。

+0

这似乎工作。我在AfterTableViewController .h文件中创建了一个字符串属性,并在prepareForSegue中为其分配了一个值。然后在AfterViewController的viewDidLoad方法中,我使用该字符串的值更新了标签的文本。我只是困惑,为什么我不能改变标签的价值,除了做这个伎俩。也许因为它'弱'和我定义的字符串属性是'强'。任何建议? – Milad

+2

在执行的时候,据我所知,这个IBOutlet到你的UILabel仍然是零,这就是为什么没有发生。尽管如此,我不会说这是一个窍门,但这是传递数据的一种非常正常的方式。 –

0

您必须确保将theLabel作为AfterTableViewController内的(合成)属性添加才能正常工作。

+0

已经做到了。不起作用。 这里的项目http://www.mediafire.com/?8zz3xf2qltzaszd – Milad

+0

@MiladGhattavi是故事板中已定义的标签还是控制器自己创建的标签?您可能还想清除“不工作”声明,它不起作用?错误,崩溃,你记录了什么? –

+0

它在故事板中并被定义为第二个视图控制器代码中的属性。 '不起作用'只是一个评论。为了更好的理解,我在这里添加了它。 我有点用韦斯利的回答解决了这个问题。 我会在几分钟后发布我所做的。 – Milad

相关问题