Создание ручного перехода через раскадровку и xcode.

Я довольно новичок в xcode, и я пытаюсь разработать пример приложения, которое представляет собой встроенное табличное представление, которое имеет много уровней. У меня есть список, в котором хранятся ячейки каждой таблицы. Если ячейки не имеют дочерних элементов, я хочу иметь возможность перейти к одному подробному виду после нажатия ячейки. В конце концов я хочу иметь возможность перейти к различным подробным представлениям в зависимости от типа данных. Для этого я создал подробный вид из раскадровки, перетащил свой контроллер вида в подробный вид, чтобы создать руководство ».От себя" Segue, и обозначил Segue "SEGUE1" .

Редактировать: Исходный кодВот

Затем я заполняю то, что я предполагал, необходимые функции для этого, чтобы вызвать[self performSegueWithIdentifier:@"segue1" sender:myString]; где myString - это название ячейки, которую я выбрал.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Check the dictionary to see what cell was clicked
    NSDictionary *dict = [self.tableDataSource objectAtIndex:indexPath.row];
    NSString *myString = [dict objectForKey:@"Title"];
    NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];

    NSArray *children = [dictionary objectForKey:@"Children"];

    //If there is no children, go to the detailed view
    if([children count] == 0)
    {
        [self performSegueWithIdentifier:@"segue1" sender:myString];

    }
    else{
        //Prepare to tableview.
        DrillDownViewController *rvController = [[DrillDownViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];

        //Increment the Current View
        rvController.CurrentLevel += 1;

        //Set the title;
        rvController.CurrentTitle = [dictionary objectForKey:@"Title"];

        //Push the new table view on the stack
        [self.navigationController pushViewController:rvController animated:YES];

        rvController.tableDataSource = children;

    }

}

Наконец, я позвонил подготовить к segue, который ищет segue1.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"segue1"])
    {
        DrillDownDetailController *dvController = [[segue destinationViewController] visibleViewController];
        //DrillDownDetailController *dvController = [[DrillDownDetailController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
        [dvController setItemName:(NSString *)sender];
        [self.navigationController pushViewController:dvController animated:YES];
    }
}

Я думал, что это будет работать, но по какой-то причине всякий раз, когда код достигает[self performSegueWithIdentifier:@"segue1" sender:myString];ломается с ошибкой

***** Завершение приложения из-за неисследованного исключения »NSInvalidArgumentException»Причина:Receiver () не имеет перехода с идентификатором 'SEGUE1 '' * Стек вызовов первого броска: (0x14b4022 0xeb4cd6 0xdf61b 0x3590 0xa85c5 0xa87fa 0x93d85d 0x1488936 0x14883d7 0x13eb790 0x13ead84 0x13eac9b 0x139d7d8 0x139d88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 x 0 x 6 0 x 0 в л 0 x 0) шидется 0 0 x 0 x 0 0 в 0 0 0 x 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0

Я могу'не понимаю, почему этоговорит мне, что можетне найти segue1, когда этоs уже определены в раскадровке и коде.

Ответы на вопрос(2)

Ваш ответ на вопрос