「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];
}
私はこれと同じ問題を抱えていました、そして実際に私の問題は私が呼んでいたことでした
WRONG: [self.navigationController performSegueWithIdentifier:@"ShowVerify" sender:self];
の代わりに
CORRECT: [self performSegueWithIdentifier:@"ShowVerify" sender:self];
したがって、正しいperformSegueWithIdentifierメソッドを呼び出していることを確認してください:)
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
self.performSegue(withIdentifier: "identifierName", sender: self)
新しい画面に関しては、そのように追加しました。その画面で、終了して削除したい場合は、次のようにします。
self.dismiss(animated: false, completion: nil)
UIKITがヘッダーファイルにあるかどうかを確認します。私は無意識のうちに新しいVC ViewControllerのサブクラスを作成しました。