0

我在 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 我看到它已正确设置为 L0.text 的值,但 Flipsideview 上的标签文本并没有改变。

关于我做错了什么的任何想法?

4

1 回答 1

4

在 prepareForSegue 时,您的目标视图控制器已创建,但尚未加载视图。因此,当视图加载,您分配给标签的任何内容都会被覆盖。您可以在对它进行任何操作之前通过记录标签属性来确认这一点——它将为零。

目标 VC 应该有一个字符串属性,您可以在 prepareForSegue 中使用所需的文本设置该属性。然后在 viewWillAppear 中通过该字符串属性设置标签的文本。

于 2012-04-29T06:50:39.560 回答