2009-09-13 65 views
0

我在视图上添加一个标签 UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f,320.0f,300.0f,75.0f)]; [titleLabel setText:[BusinessLogic instance] .homeMessage];如何检查控件是否已被添加到视图?

然后我转到另一个视图,然后回来。这导致两个标签控件相互重叠。我想要做的是: 检查是否已经添加了标签控件。如果不添加并设置文本。如果是,请设置文本。

什么是最好的办法。我想学习正确的方法,因为我已经有一些如何做到的令人厌恶的想法。

谢谢。 我

回答

3

您可以检查上海华属性:

if (titleLabel.superview == self) { 
} 

(假设“自我”是视图要添加的标签)

+0

我比如说,他应该首先将UILabel变量移到函数之外。然后检查是否为零。 – CiNN 2009-09-13 21:56:06

+0

我同意CiNN - 谢谢你们 – amok 2009-09-14 16:37:29

1
if (titleLabel.superview != someView) { 
    [someView addSubview:titleLabel]; 
} 
1

属性到您的类加入存储对您的标签的引用。如果您不存储任何地方,你不能轻易地在未来改变其文本:

// header 
@property (nonatomic, retain) IBOutlet UILabel *titleLabel; 
// implementation 
@synthesize titleLabel; 

创建UILabel例如,如果titleLabelnil,并分配给它:

if (self.titleLabel == nil) { 
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 320.0f, 300.0f, 75.0f)]; 
    self.titleLabel = titleLabel; 
    [titleLabel release]; 
    // add to the view here. 
} 
self.titleLabel.text = newText; 
+0

小错字:@synthesis - > @synthesize – 2009-09-13 20:43:46

相关问题