如何从另一个对象设置 UItextlabel 文本
Posted
技术标签:
【中文标题】如何从另一个对象设置 UItextlabel 文本【英文标题】:how to set UItextlabel text from another object 【发布时间】:2011-09-12 05:15:19 【问题描述】:我在一个 NSobject 中设置一个 NSString,我想在其中将值传递给 uitableviewcell UIlable 在不同的视图中?我正在考虑正确设置的代码是什么,因为我觉得我在做正确的事情,但它只是没有改变标签中的文本..
//inside tableview/forRowAtIndexPath
//load VehicleSearchObjects
VehicleSearchObject *vehicleSearchObject = [[VehicleSearchObject alloc] init];
if(indexPath.section == 0)
if(indexPath.row == 0)
UILabel *label1;
label1 = (UILabel *)[cell viewWithTag:1];
label1.text = @"Manufacture";
UILabel *label2;
label2 = (UILabel *)[cell viewWithTag:2];
label2.text = [vehicleSearchObject manufacturerString]; //this is where I try to set the text... but nothing is happening, am I doing it right or should I be doing something else?
【问题讨论】:
发布更多代码....这个manufacturerString是做什么的?什么东西被分配了标签 1 和 2? 标签 1 和标签 2 定义了哪个 UIlabel 是哪个。当您创建带有标签的自定义 tableviewcell 时,您可以在 interface-builder 中设置标签值,这只是引用,因此这些值将传递给正确的 UILabel。制造字符串只是我传递给 NSObject 以供以后在父视图中使用的字符串。基本上这里的总体目标是让一个对象挖出一堆值,我将使用这些值来搜索大型数据库。 【参考方案1】:如果更改label1
的文本有效,那么我会查看您尝试访问的标签是否确实是标签2
,如果为真,如果manufacturerString
确实返回任何内容.
【讨论】:
【参考方案2】:每次调用该方法时都初始化vehicleSearchObject
。我希望manufacturerString
不是nil
。此外,UILabel
可能没有内存,如果您不分配任何内存。尝试将其设为@property
。您可以在调试器控制台中检查它是否有内存。
编辑:在你的接口或.h
文件中声明UILabel * label1
并写@property(nonatomic,retain) UILabel * label1;
,在你的实现或.m
文件中写@synthesize label1;
。在UIView
初始化方法中分配/初始化标签,如viewDidLoad:
等。这会将内存分配给label1
,范围涵盖所有函数。现在,不要再写UILabel *label1;
。只需根据您的要求继续设置文本即可。 label2
也是如此。
【讨论】:
是的,我认为我的初始化会导致问题,但我不确定我还能如何处理这个问题.. 它需要保存几个值,每个值都分别初始化..【参考方案3】:您可能想尝试 [UILabel setText:(NSString)] 而不是 UILabel.text = (String)。
【讨论】:
label.text=str;
与[label setText:string];
相同,另外,需要在UILabel
的实例 上调用,而不是在UILabel
类上调用。跨度>
以上是关于如何从另一个对象设置 UItextlabel 文本的主要内容,如果未能解决你的问题,请参考以下文章