コンテキスト: A と B の 2 つの VC があります。VC A には、いくつかのボタンといくつかのラベルが含まれています。VC A のボタンを押すと、セグエは VC B/C/ などを表示します。ここで、VC A/B/C などで終了すると、セグエが巻き戻されて VC A が表示されます。VC B/C/D などのほとんどの場合、その VC のボタン (ctrl + ドラッグして「終了」アイコン) をトリガーするアンワインド メソッドを使用しています。VC A に戻ると、次のアクションが自動的に呼び出されるため、これは完璧に機能します。
- (IBAction)returned:(UIStoryboardSegue *)segue {
// Here I do some stuff
}
問題: 現在、セカンダリ VC の 1 つ (たとえば D) では、状況が少し特殊です。この VC では、プログラムでループを介して数百のボタンを生成し、次にどのボタンが押されているかを検出し、最後に VC A に巻き戻します (特定のボタンなし; ボタンのいずれかが巻き戻しをトリガーします)。私はこれを行うことができることを知っています。
[self dismissViewControllerAnimated: YES completion: nil]
ただし、VC A に戻るとき、またはこれを使用しても、上記のアクションはトリガーされません。
[self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self]
しかし、これは私が望んでいないVC Aの新しいインスタンスを生成します(VC Aのインスタンスのラベルにはすでにいくつかの情報が含まれているため)。
したがって、私が望むのは、VC D を生成した VC A の同じインスタンスに戻り、上記の「返された」アクションをトリガーできるようにすることです。したがって、「終了」アイコンに接続されたボタンを使用する場合と同じ効果を実現したいのですが、VC D の多くのボタンの 1 つが押されたときに、プログラムで「コード内」でこれを実行したいと考えています。
何かご意見は?