viewDidLoad вызывается раньше, чем didSelectRowAtIndexPath - PullRequest
3 голосов
/ 26 января 2012

у меня есть viewDidLoad (из следующего tableView) вызывается до didSelectRowAtIndexPath (из текущего tableView).

Я использую «синглтон», чтобы держать мою модель, и до сих пор это работало довольно хорошо. Я пытаюсь передать строку, выбранную в текущей таблице в didSelectRowAtIndexPath, пункту назначения tableview (они связаны переходом в раскадровке), установив переменную в didSelectRowAtIndexPath.

Однако viewDidLoad пункта назначения tableview вызывается до того, как я могу установить номер строки. didSelectRowAtIndexPath вызывается позже, но к тому времени я настроил свои данные (неправильно) для таблицы назначения.

1 Ответ

5 голосов
/ 26 января 2012

При использовании сегментов вам не нужно didSelectRowAtIndexPath:. Вы просто связываете переход с клеткой в ​​IB. В коде просто используйте это:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   CustomViewController *newVC = [segue destinationViewController];
   newVC.property = theDataYouWantToPass;
}

Вы можете получить строку с помощью переданной переменной sender.

UITableViewCell *cell = (UITableViewCell *) sender;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSInteger myRow = indexPath.row;
...