我在视图上添加了一个标签 UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f,320.0f,300.0f,75.0f)]; [titleLabel setText:[BusinessLogic实例] .homeMessage];
然后我转到另一个视图然后回来。这导致两个标签控件彼此叠加。我想做的是: 检查是否已添加标签控件。如果不添加它并设置文本。如果是,只需设置文本。最好的方法是什么。我想学习正确的方法,因为我已经有一些令人作呕的想法如何去做。
感谢。 我
答案 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;
如果UILabel
为titleLabel
,请创建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;