У меня есть UITableView, который загружает через свой навигационный контроллер новый viewcontroller.Этот код входит в метод tableView: didSelectRowAtIndexPath:
ConcertDetailViewController *detailVC = [[ConcertDetailViewController alloc] initWithNibName:@"ConcertDetailViewController" bundle:nil];
У UITableView есть модель, я хочу отправить элемент этой модели во вновь созданный ViewController.
detailVC.aProd = [_prod objectAtIndex:indexPath.row];
Когда значение установлено, я хочу, чтобы detailVC рисовал данные на экране.Я думал, что пользовательский сеттер, перезаписывающий тот, что генерируется @synthesize, будет работать.
-(void)setaProd:(NSMutableDictionary *)aProd {
_aProd = aProd;
[self displayAProd];
}
displayAProd просто берет значения в aProd и выводит их на экран, или, скорее, я устанавливаю какое-то значение розетки, созданной в моем файле пера.
self.prodNameLbl.text = [_aProd objectForKey:@"name"];
Ничего особенного в этом нет.Но это просто не работает.Я понял почему, я думаю.Это потому, что сеттер выполняется намного быстрее, загружая весь вид в память.Если я поставлю self.prodNameLbl.text = @ "что-то";в методе viewDidLoad он отображает правильное значение в метке.Быстрый обходной путь - увидеть, установлен ли _concerts, и оттуда вызвать displayAProd.Здесь я сомневаюсь, что это хороший способ загрузить вид.Что делать, если пользовательский установщик занимает больше времени, чтобы выполнить загрузку представления.Проверка того, установлены ли _concerts, будет ложной, и ничего не будет отображаться.Или это просто невозможно?
Или, может быть, есть лучший шаблон для загрузки представлений и передачи им данных для отображения.
Спасибо заранее, Джонас.