Как проверить, был ли элемент управления уже добавлен в представление? - PullRequest
0 голосов
/ 14 сентября 2009

Я добавляю ярлык на вид UILabel * titleLabel = [[UILabel alloc] initWithFrame: CGRectMake (10.0f, 320.0f, 300.0f, 75.0f)]; [titleLabel setText: [экземпляр BusinessLogic] .homeMessage];

затем я перехожу к другому виду и возвращаюсь. Это приводит к тому, что два элемента управления метками накладываются друг на друга. Что я хочу сделать, это: проверьте, был ли элемент управления меткой уже добавлен. Если нет, добавьте его и установите текст. Если это так, просто установите текст.

Какой лучший способ сделать это. Я хочу научиться правильно, так как у меня уже есть пара отвратительных идей, как это сделать.

Спасибо. тОт

Ответы [ 3 ]

3 голосов
/ 14 сентября 2009

Вы можете проверить свойство superview:

if (titleLabel.superview == self) {
}

(при условии, что "self" - это представление, к которому вы добавляете метку)

1 голос
/ 14 сентября 2009

Добавьте свойство в свой класс, чтобы хранить ссылку на ваш ярлык. Если вы нигде не храните его, вы не сможете легко изменить его текст в будущем:

// 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;
1 голос
/ 14 сентября 2009
if (titleLabel.superview != someView) {
    [someView addSubview:titleLabel];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...