从 NSString 到 UILabel xcode 的错误

Posted

技术标签:

【中文标题】从 NSString 到 UILabel xcode 的错误【英文标题】:Error from NSString to UILabel xcode 【发布时间】:2012-09-24 19:31:53 【问题描述】:

我的脚本有错误,它不起作用。但我不知道如何改变它。 我正在使用 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];      



谢谢。

【问题讨论】:

错误在哪里?错误是什么? 任何答案都解决了您的问题吗?如果是这样,请接受一个以帮助未来的网站访问者,如果他们有同样的问题。 【参考方案1】:

我认为错误在这一行:

DetailVC.favoriteColorLabel=@"Bonjour";

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

DetailVC.favoriteColorLabel.text=@"Bonjour";

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

【讨论】:

【参考方案2】:

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

你需要这样做:

labelname.text = @"String";

那么您的问题将得到解决。

希望它有效。

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

以上是关于从 NSString 到 UILabel xcode 的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NSString 对象中的字符转换为 UILabel 对象?

匹配 NSString 和 UILabel 的文本 [重复]

iPhone:如何将 NSString 拆分为多行并将其设置为 UILabel? [复制]

根据NSString字符串长度自动改变UILabel的frame

numberOfLines=2 的 UILabel 使用啥约束高度? (使用 [NSString sizeWithFont...])

iOS计算文本高度和宽度(Objective-C)(UILabel和NSString两种方法)