Динамическое отображение TableView или DetailView


Из моего TableView я динамически хочу показать либо TableView, либо DetailView (new segue), основываясь на содержимом ячейки. Я установка двух переходов от TableView, чтобы разные DetailViews и один переход из TableViewCell к TableView.

Я почти завершил реализацию с помощью performSegueWithIdentifier: (см. ниже), но остается одна трудная проблема: после вызова [self dismissModalViewControllerAnimated:YES]; на DetailView он возвращается к пустому TableView . Я предполагаю, потому что раскадровка сегментирует от UITableViewCell выполняемый. Нажав кнопку назад, я возвращаюсь к своим исходным (родительским) данным TableView.

Какие-либо предложения по этой работе?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    NSString *type = [[self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row] valueForKey:@"cell_type"];
    NSLog(@"cell_type: %@", type);
    if([[segue identifier] isEqualToString:@"DetailSegue"])
    {
        UIViewController *detailViewController = [segue destinationViewController];        
        detailViewController.game = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
    } else if ...
    } else if([[segue identifier] isEqualToString:@"TableViewSegue"]){
    if([type isEqualToString:@"TableView"]){
    //Create child ViewController, a custom ViewController with custom initWithId:Title:
    CategoryViewController *categoryViewController = [[segue destinationViewController] initWithId:categoryId Title:categoryTitle];
    }
}

}

1 3

1 ответ:

Я бы создал в своем tableview несколько ячеек. Каждый со своим собственным идентификатором. Затем соединяем каждую клетку своего собственного detailviewcontroller. Вы также можете подключить ячейку к ее собственному контроллеру вида (создавая детализированную функциональность только для конкретной ячейки).

Вот и все...