Невозможно выполнить segue - PullRequest
0 голосов
/ 28 декабря 2011

Мне нужно переходить с одного экрана на другой по щелчку ячейки табличного представления, и я хочу, чтобы данные в моей ячейке передавались на соответствующих ярлыках на втором представлении. Я связал два представления с помощью перехода.как мне идти дальше? спасибо

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

У вас есть 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 поднимут завесу!

1 голос
/ 28 декабря 2011

Вам действительно нужно изучить цель C, прежде чем приступить к разработке проекта.вот ссылка на книгу Apple: http://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/objc.pdf

...