0

3 つの ViewController がある状況があるとします。黄・緑・白のやつ。

黄色と緑の両方を通って白いものに到達できます。詳細については、画像を参照してください。

ここに画像の説明を入力

黄色から白にセグエするとき、セグエの準備をして、NSUinteger jimmy_hendrix 値を 0 に設定します。

から白にセグエするとき、セグエの準備をして、NSUinteger jimmy_hendrix 値を 1 に設定します。

白いVCの中にIBActionを作り、BACKボタンを接続しました。そこで、値に応じて、白い VC になってしまったセグエを巻き戻したいと思います。

これは私が使用するコードです:

- (IBAction)goBack:(UIButton *)sender {

switch (_jimmy_hendrix) {

    case 0:
        [self performSegueWithIdentifier:@"fromYellowToWhite" sender:self];
        break;

    case 1:
        [self performSegueWithIdentifier:@"fromGreenToWhite" sender:self];
        break;
}
}

しかし、例外があります:

'Receiver (<WhiteVC: 0x15d8c850>) has no segue with identifier 'fromSuperTraenerToSuperTraenerQuestions

これを明確にするために、使用した VC とセグエに基づいて、実行したいアンワインドが 2 つあるため、[戻る] ボタンから ctrl + ドラッグして終了し、アンワインド セグエ メソッドを選択したことはありません。

これに対する解決策は何ですか?そもそも目的地に到達するために使用した ViewvController に戻るにはどうすればよいですか?

重要: 白から黄、緑まで、新しいセグエを作成して呼び出すことができることを私は知っています。しかし、私はそれを望んでいません..新しいセグエを作成したくありません。既存のものをプログラムで巻き戻したいです。

編集:実際に緑と黄色のVCでアンワインドメソッドを作成したことを忘れていました

-(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue {
}


-(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue {
}
4

2 に答える 2

2

アンワインド セグエを作成する必要があります。YellowVC でメソッドを作成する

-(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue {
}

そしてGreenVCでメソッドを作成します

-(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue {
}

UIViewController次に、白のインスタンスから白のシーンの「終了」アイコンにドラッグし、を選択しますfromYellowToWhite。これを繰り返して選択fromGreenToWhite:

最後に、新しく作成したアンワインド セグエを選択し、識別子を「fromYellowToWhite」と「fromGreenToWhite」に設定します。「fromYellowToWhite:」と「fromGreenToWhite:」の「アクション」が必要です。

于 2014-10-02T10:42:09.743 に答える