2010-03-24 2 views
2

Как изменить текст моего UILabel в методе viewDidLoad моего контроллера представления ?.Измените текст 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

Как подсказка для будущего, методы в Objective-C не вызывают с синтаксисом '()', и они не называются так. Собственное имя для этого метода - '-viewDidLoad' и, скажем,' -initWithNibName: bundle: 'для метода, который вы показываете вверху. –

ответ

3

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

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

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

+0

- (void) viewWillAppear { displayLabel.text = @ "abc"; } Это нормально! – HelloWorld

Смежные вопросы