Использовать разматывать segue в файле didSelectRowAtIndexPath?

У меня есть контроллер корневого представления A, который нажимает segues на контроллер табличного представления B. И когда строка выбрана в B. Я хочу использовать разматывать segue, чтобы вернуться к A и передать текст в строке назад в корневом представлении А. И затем я использую метод подготовки к методу segue для отправки отклонений назад следующим образом:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
 ViewControllerA *vca = (ViewControllerA *)segue.destinationViewController;
 vca.textString = [[_objects objectAtIndex:indexPath.row] objectForKey:@"title"];
}

но то, что я не знаю, как это сделать, заключается в вызове размотки segue в методе didSelectRowAtIndexPath.

Спасибо за помощь заранее.

2 ответа

Не называть ничего. Подключите развязывающий сегмент из ячейки в виде таблицы в контроллере B, и разматывание будет вызываться прикосновением к ячейке. Вам не нужно будет использовать didSelectRowAtIndexPath для всех. Вы можете получить indexPath в prepareForSegue от отправителя (который будет ячейкой, которую вы коснулись),

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell *)sender{
 ViewControllerA *vca = (ViewControllerA *)segue.destinationViewController;
 NSIndexPath *selectedPath = [self.tableView indexPathForCell:sender];
 vca.textString = _objects[selectedPath.row][@"title"];
}


Вам не нужно готовиться к segue, если вы хотите вернуться к контроллеру представления. Вы можете просто вызвать этот контроллер просмотра напрямую. Проверьте здесь.

И затем, как только вы отправите родительский элемент управления представлением, вы можете просто поместить текущий контроллер представления.

[self.navigationController popViewControllerAnimated:yes]

Вы можете сделать все это в файле didSelectRowAtIndexPath.

licensed under cc by-sa 3.0 with attribution.