如何检查控件是否已添加到视图中?

时间:2009-09-13 20:30:36

标签: iphone iphone-sdk-3.0

我在视图上添加了一个标签 UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f,320.0f,300.0f,75.0f)]; [titleLabel setText:[BusinessLogic实例] .homeMessage];

然后我转到另一个视图然后回来。这导致两个标签控件彼此叠加。我想做的是: 检查是否已添加标签控件。如果不添加它并设置文本。如果是,只需设置文本。

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

感谢。 我

3 个答案:

答案 0 :(得分:3)

您可以查看超级视图属性:

if (titleLabel.superview == self) {
}

(假设“self”是您要添加标签的视图)

答案 1 :(得分:1)

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

答案 2 :(得分:1)

向您的类添加属性以存储对标签的引用。如果您不将它存储在任何地方,将来不能轻易更改其文本:

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

如果UILabeltitleLabel,请创建nil个实例并分配给它:

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;