2012-12-03 31 views
2

我遇到了标签问题。我有几个标签,需要借助标签进行更改。我这样做在我的代码,但它给出了一个例外 -[UIView setText:]: unrecognized selector sent to instance 这是我的代码:带标签的UILabel,无法设置文本

UILabel *label = (UILabel *)[self.view viewWithTag:0]; 

label.text = @"empty"; 

赞赏任何帮助,谢谢。

+1

你没有找回UILabel。尝试将您的标签更改为更高的数字。 0是您的视图中的任何内容的默认标签将首先具有该标签。 – Martin

回答

2

每个视图的标签默认为0。

标签

,你可以用它来识别你 应用程序的视图对象的整数。

@属性(非原子)NSInteger的标签

讨论

默认值为0 您可以设置这个变量的值并使用该值后,以识别 视图。

您的viewWithTag将返回您的self.view。所以你会得到一个UIView而不是一个UILabel,你的应用程序将崩溃。见viewWithTag的定义:

viewWithTag:

返回其标记指定的值相匹配的视图。

- (UIView *)viewWithTag:(NSInteger)tag 参数

标签

标记值来搜索。返回值接收方层次结构中的标签属性与标签参数中的值匹配的视图。

讨论

该方法搜索当前视图及其所有子视图 为指定视图。

因此,对于您的解决方案,您需要为每个标签指定唯一的tag。然后使用viewWithTag:并给出您指定的标签。

+0

谢谢,所以我可以使用任何标签,但0? – fuskaren

+0

你确实可以0.但是如果你没有指定一个非零的标签,那么每个'UIView'的标签默认为0。你将有很多标签为0的视图。这绝对不是你想要的。当然你可以使用0,但非零标签是无限更好。 – sunkehappy