我在Xcode中使用实用程序应用程序模板,主视图和翻转视图。 在主视图中,我有一个名为L0的属性标签。我试图在侧面视图上复制该标签。 在另一方面,我宣布了
@property (weak, nonatomic) IBOutlet UILabel *label;
它在.m文件中合成
@synthesize label = _label;
我的prepareForFegue方法是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"showAlternate"]) {
FlipsideViewController *fsv = (FlipsideViewController *)[segue destinationViewController];
fsv.label = self.L0;
fsv.delegate = self;
}}
然而,如果我在prepareForSegue中使用NSLog fsv.label.text,那么flipsideview上标签的文本不会改变,我发现它已正确设置为L0.text的值。
关于我做错了什么的任何想法?
答案 0 :(得分:4)
在prepareForSegue时,您的目标视图控制器已创建,但视图尚未加载。因此,在加载视图 时,将覆盖分配给标签的任何内容。您可以通过在执行任何操作之前记录label属性来确认这一点 - 它将为零。
目标VC应该有一个字符串属性,您可以在prepareForSegue中使用所需的文本进行设置。然后,在viewWillAppear中从此字符串属性设置标签的文本。