"Получатель (<ViewController>) не имеет сеанса с идентификатором" addSegue "

У меня есть контроллер навигации, у которого есть segue-ссылки между ними, называемые addSegue. Когда я нажимаю на ячейку tableView, хотя приложение выходит из строя, и я получаю следующую ошибку:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<MSAddFriendsViewController: 0x98cc340>) has no segue with identifier 'addSegue'

Я не думаю, что у меня есть проблемы с моим кодом. Вот метод, в котором у меня есть строка showSegueWithIdentifier:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSMutableSet *selectedUsers = [NSMutableSet set];

[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];


cell.accessoryType = UITableViewCellAccessoryCheckmark;
PFRelation *friendsRelation = [self.currentUser relationforKey:@"friendsRelation"];
PFUser *user = [self.allUsers objectAtIndex:indexPath.row];
[friendsRelation addObject:user];
[self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (error) {
        NSLog(@"Error %@ %@", error, [error userInfo]);

    }    }];

[self performSegueWithIdentifier:@"addSegue" sender:self];

}

Вот фотография моего раскадровки

Вот обновленная картина моего раскадровки

Ответ 1

У меня была такая же проблема, и на самом деле моя проблема заключалась в том, что я звонил

WRONG: [self.navigationController performSegueWithIdentifier:@"ShowVerify" sender:self];

вместо

CORRECT: [self performSegueWithIdentifier:@"ShowVerify" sender:self];

поэтому проверьте, что вы вызываете правильный метод executeSegueWithIdentifier:)

Ответ 2

enter image description here

use segue identifier in Push Method and give the proper connection

если вы используете Identifier, затем вызовите эту строку, где вам нужно

[self performSegueWithIdentifier:@"identifierName" sender:self];

Swift 2.X

self.performSegueWithIdentifier("identifierName", sender: self)

Swift 3

self.performSegue(withIdentifier: "identifierName", sender: self)

Относительно нового экрана вы добавили этот путь. На этом экране, когда вы закончите и хотите удалить его, просто:

self.dismiss(animated: false, completion: nil)

Ответ 3

Трудно сказать наверняка, но у некоторых других были похожие проблемы:

  • В этот вопрос, спрашивающий инстанцировал раскадровку с помощью init вместо instantiateViewControllerWithIdentifier, поэтому segue не был настроен должным образом.

  • В этот вопрос, это было просто странное событие внутренне с xcode и симулятором, и работает Product- > Clean помог.

  • И, конечно, возможно, что имя segue в коде не совпадает с именем segue в Storybord, но я предполагаю, что вы уже много раз проверяли это!

Ответ 4

Проверьте, есть ли UIKIT в заголовке или нет. Я неосознанно сделал новый VC подклассом View Controller.