0

我的脚本有错误,它不起作用。但我不知道如何改变它。我正在使用 2 个视图,我想使用 if/else 从第一个视图更改第二个视图上的 favoriteColorLabel 上的文本。如果有人知道问题,请帮助我。我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

   if(indexPath.row==1) {
        DetailVC.favoriteColorLabel=@"Bonjour"; 

    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
    dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:dvController animated:YES];      

}
}

谢谢。

4

3 回答 3

2

我认为错误在这一行:

DetailVC.favoriteColorLabel=@"Bonjour";

您很可能实际上想要text像这样设置标签的属性:

DetailVC.favoriteColorLabel.text=@"Bonjour";

这是因为text属性是标签在屏幕上显示的文本。您将实际的 UILabel 对象设置为 NSString 文字,这可能不是您想要做的。

于 2012-09-24T19:35:36.230 回答
0

您正在将 Text 设置为标签 这就是您在代码中遇到错误的原因。

你需要这样做:

labelname.text = @"String";

然后你的问题就会解决。

希望它有效。

于 2012-09-24T19:38:27.913 回答
0

我会考虑在第二个视图中从第一个糟糕设计中的方法设置标签,并且容易出错。

我会做的是给你的细节视图控制器property一个NSString *. 从第一个控制器创建详细视图控制器后,将文本传递@"Bonjour"给该属性(通过使用其 setter 方法),然后您可以显示详细视图控制器。第二个视图控制器可以查看其字符串的值并相应地设置标签。

详细视图控制器用于管理自己的视图,它不应该需要您首先使用视图控制器来管理屏幕上的内容。

于 2012-09-24T19:41:28.023 回答