Как обновить или сбросить UIView с пользовательским подпредставлением? - PullRequest
1 голос
/ 31 августа 2010

У меня есть UIView в UIViewController, к которому я добавляю пользовательское подпредставление в методе viewDidAppear.

MyView *myView = [[MyView alloc] initWithLabelText:text];
[self.view addSubview:myView];
[myView release];

Переменная text - это строка, используемая в метке в myView.Это text меняется каждый раз, когда вы возвращаетесь к текущему виду.Но кажется, что viewDidAppear не перезагружает представление - оно скорее загружает новый вид поверх старого - поэтому у меня есть две метки друг над другом.

Я пытался использовать viewWillAppear, но это не такне имеет значения.Я тоже пытался использовать [self.view setNeedsDisplay] - не помогает.Я также попытался сделать myView переменной экземпляра, но это также не помогло.

Я работал с явным удалением представления, когда я объявил его как переменную экземпляра:

- (void)viewDidDisappear:(BOOL)animated
{
    [_myView removeFromSuperview];
}

Хотя существует этот обходной путь, я хотел бы просто сбросить представление при возврате к нему.Кто-нибудь знает, как это сделать?Буду признателен;)

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

Следующее может быть рассмотрено.

viewDidLoad -> alloc и init ваши sub views viewDidAppear -> обновить вложенные представления dealloc -> выпустить подвиды.

0 голосов
/ 31 августа 2010

Не выделяйте и не инициируйте пользовательское подпредставление каждый раз, только при первом вызове viewDidAppear. Затем сохраните его в свойстве для последующего использования.

...