У вас есть VC1 , который имеет UITableView
и VC2 .При касании VC1 UITableViewCell
отображается VC2 с информацией из ячейки.Схематически в VC1 вы реализуете:
#pragma mark - Table view delegate for VC1
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
dataForVC2 = [vc1DataSource objectAtIndex:indexPath.row];
[self performSegueWithIdentifier:segueFromVC1ToVC2 sender:self];
}
#pragma mark - View lifecycle
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:segueFromVC1ToVC2]) {
vc2 = (VC2ViewController *)[segue destinationViewController];
vc2.delegate = (id)self;
vc2.whatIWantFromVC1 = dataForVC2;
}
}
#pragma mark - VC2 delegate
- (void)VC2ControllerDidFinish:(VC2ViewController *)controller
{
dataBackFromVC2 = controller.propertyForVC1;
}
Вот как вы управляете переходом.Вам также необходимо реализовать протокол делегирования для VC2, который очень хорошо описан в видео Apple WWDC, посвященном WWDC 2011, «Введение в раскадровку».UITableView datasource
& delegate
, протоколы , UINavigationController
и segues , тогда сложные пользовательские интерфейсы становятся простыми в реализации.Счастливые 2 дня просмотра документов Apple и видео WWDC поднимут завесу!