UILabel не будет обновляться с первого раза - PullRequest
0 голосов
/ 19 декабря 2010

у меня есть модальное представление, которое содержит только кнопку o и uilabel.Кнопка закрытия модального v:

- (IBAction) close {
    [self dismissModalViewControllerAnimated:YES];
}

Теперь я создаю это представление:

nw = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
nw.modalInPopover = YES;
nw.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[nw setValues:@"asdasd"];

[self presentModalViewController:nw animated:YES];

все ок.

Он загружается правильно, но значение uilabel не показывает правильную текстовую метку.

Как это возможно?При повторном щелчке значение было установлено правильно ...

Это setValues ​​func:

- (void) setValues:(NSString*)val {
    [firstLabel setText:val];
}

Отладка, она показывает первый раз UILabel 0x0 ... это проблема, но втораяраз он создан правильно и значение установлено.

есть идеи, чтобы исправить?

alberto.

Ответы [ 3 ]

1 голос
/ 22 января 2014

Возможно, вы установили текст метки в viewDidLoad, пока представление не завершит саму загрузку.

Попробуйте вместо viewDidAppear или viewWillAppear.

0 голосов
/ 17 января 2014

Вы также можете установить текст в основной теме

 dispatch_async(dispatch_get_main_queue(), ^{
       firstLabel.text = currentEventsString;
 });
0 голосов
/ 19 декабря 2010

При первом вызове setValues ​​NewsViewController, вероятно, еще не загрузил свой вид. Для подтверждения установите точку останова до [ns setValues:@"asdasd"]; и в методе -[viewDidLoad], равном NewsViewController.

Чтобы обойти это, вы можете добавить переменную экземпляра для текста в NewsViewController. Затем установите переменную экземпляра в -[setValues:] и установите текст метки в методе -[viewDidLoad] из этой переменной экземпляра.

...