"Получатель (<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.