web-dev-qa-db-ja.com

'レシーバー(<ViewController>)には識別子' addSegue 'のセグエがありません

「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];

}

これが私のストーリーボードの写真です

これが私のストーリーボードの更新された写真です

11
MicahKE

私はこれと同じ問題を抱えていました、そして実際に私の問題は私が呼んでいたことでした

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

の代わりに

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

したがって、正しいperformSegueWithIdentifierメソッドを呼び出していることを確認してください:)

16
ooxio

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

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

新しい画面に関しては、そのように追加しました。その画面で、終了して削除したい場合は、次のようにします。

self.dismiss(animated: false, completion: nil)
11
Anbu.Karthik

確かに言うのは難しいですが、他の何人かの人々は同様の問題を抱えています:

  • この質問 では、質問者がストーリーボードをinitではなくinstantiateViewControllerWithIdentifierでインスタンス化したため、セグエが適切に設定されませんでした。

  • この質問 では、xcodeとシミュレーターで内部的に何か奇妙なことが起こっていて、Product-> Cleanを実行すると役に立ちました。

  • もちろん、コード内のセグエ名がStorybordのセグエ名と一致しない可能性もありますが、すでに何度もチェックしていると思います。

6
JKillian

UIKITがヘッダーファイルにあるかどうかを確認します。私は無意識のうちに新しいVC ViewControllerのサブクラスを作成しました。

0