Я все еще новичок в раскадровке. Я потратил два дня на отладку этой проблемы. Кажется, что контроллер представления назначения перехода не работает должным образом, когда вызывается -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender.
У меня есть представление таблицы, и когда ячейка нажимается, она требует перехода
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
VAItem *item = [category itemAtIndex:indexPath.row];
[self performSegueWithIdentifier:@"SegueShowDetail" sender:item];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SegueShowDetail"]) {
VADetailViewController *detailViewController = segue.destinationViewController;
detailViewController.item = (VAItem*) sender; // <-- THIS ASSIGNMENT DOES NOT WORK
}
}
Моя отладка показывает, что item правильно передается prepareForSegue, но detailViewController.item является диким указателем. Он не инициализирован, и назначение = не имеет никакого эффекта.
Я поставил точку останова в viewDidLoad VADetailViewController и обнаружил, что переменная item по-прежнему является адресом дикого указателя, хотя назначение имело место.
@interface VADetailViewController : UIViewController
// data
@property (nonatomic, retain) VAItem *item;
@end
элемент также правильно синтезируется.
Любая помощь высоко ценится
Лео