Изменить текст UILabel программно в viewDidLoad () - PullRequest
2 голосов
/ 24 марта 2010

Как мне изменить текст моей UILabel в методе viewDidLoad моего контроллера представления?.

Мой код ниже не обновляет интерфейс.

   - (id)initWithNibName:(NSString *)nibNameOrNil 
                  bundle:(NSBundle *)nibBundleOrNil {
       if (self = [super initWithNibName:nibNameOrNil 
                         bundle:nibBundleOrNil]) {
           displayLabel = [[UILabel alloc] initWithFrame:CGRectMake(80, 20, 230, 40)];
           [self.view addSubview:displayLabel];
       }
       return self;
   }

//
- (void)viewDidLoad {
    [super viewDidLoad];
    displayLabel.text = @"abc";
}

1 Ответ

3 голосов
/ 24 марта 2010

Вы должны попробовать добавить подпредставление в viewDidLoad.

self.view - это IBOutlet, и он не будет загружен в память в момент вызова initWithNibName и будет равен nil.

viewDidLoad вызывается после того, как контроллер представления загрузил связанные виды в память. И как таковой self.view будет указывать на представление, которое вы создали в своем файле пера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...