В основном, есть два способа сделать это.
Вы выбрали один из способов, путь перехода.Другой способ - сделать это программно и прослушать методы TableViewDelegate.
Segue Way
Вам необходимо TableViewController
для передачи данных в ViewContactViewController
при нажатии ячейки.Поскольку вы использовали segue, вам нужно удерживать ViewContactViewController
, прежде чем оно появится на экране.
Введите prepareForSegue:sender:
метод .
В этом методе получите удержаниеконтроллера представления и передать ему необходимые данные.
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"showContact"]) {
ViewContactViewController *contactViewController = [segue destinationViewController]; // get hold of destination VC
contactViewController.contact = [self.contacts objectAtIndex:[self.tableView indexPathForSelectedRow].row]; // use indexPathForSelectedRow to get hold of the indexpath of selected Cell. The data can be retrieved from the datasource array and passed on
}
}
Допущения в вышеприведенном коде:
1. showContact
определяется как имя шоу segue.
2. ViewContactViewController имеетоткрытое свойство, contact
.
3. self.contacts
- массив данных контактов, который используется в методах источника данных tableview.