У меня есть проблема, я хочу установить текст UILabel или UItextView или других объектов IBOUTLET, но я могу сделать это только в методах viewwillappear и viewdidload, если я установил текст в другом методе в коде, ничего не изменилось Вот пример:
У меня есть метод, который извлекает строку из другого класса, а затем я хочу установить эту строку в моем uilabel:
- (void)setDetailItem:(id)newDetailItem
{
if (detailItem != newDetailItem) {
NSLog(@"SetDetailItem");
[detailItem release];
detailItem = [newDetailItem retain];
detailString = [[FindStringClass alloc] init];
// Update the view.
detailItem = [detailString searchStringFor:detailItem.name];
if (detailItem) {
//
NSLog(@"setDetail: %@",detailItem.stringName);
[self configureView];
}
}
}
- (void)configureView {
NSLog(@"configure view: %@",detailItem.stringName);
mySerialTitle.text = detailItem.stringName;
}
NSLog работает, и я могу видеть мою строку в консоли, но текст в представлении не изменяется, вместо этого, если я устанавливаю простой текст в методе ViewWillAppear или viewDidLoad, таким образом, соединение с IBOOutlets является правильным , вот так:
- (void)viewDidLoad
{
mySerialTitle.text = @"CIAO";
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
Это функция вызова, в которой я вызываю setDeatItem из другого представления:
self.searchResultViewController.detailItem = [myArray objectAtIndex:[indexPath row]];
[self.navigationController pushViewController:self.searchResultViewController animated:YES];
Кто-нибудь может мне помочь?
EDIT:
Это NSLog, где метод вызывается:
2012-03-19 12:51:02.617 TestApp[292:b603] SetDetailItem
2012-03-19 12:51:06.161 TestApp[292:b603] setDetail: Chicken
2012-03-19 12:51:06.162 TestApp[292:b603] configure view: Chicken
2012-03-19 12:51:06.175 TestApp[292:b603] View DidLoad
Я вызываю представление searchviewcontroller из Tableviewcontroller. Я нажимаю на строку, а затем вызываю новое представление и передаю атрибут.