プログラムでプッシュxcodeアンワインドセグエを実行するにはどうすればよいですか?
ストーリーボードを使用してボタンを「終了」まで引くのが簡単な方法ですが、ビューを終了する前に、最初にいくつかのコードを実行することを意図しています。
プログラムでプッシュxcodeアンワインドセグエを実行するにはどうすればよいですか?
ストーリーボードを使用してボタンを「終了」まで引くのが簡単な方法ですが、ビューを終了する前に、最初にいくつかのコードを実行することを意図しています。
rootViewControllerに戻るには、次を使用します。
[self.navigationController popToRootViewControllerAnimated:(BOOL)]
または、特定のコントローラーに移動するには:
[self.navigationController popToViewController:
[[self.navigationController viewControllers]
objectAtIndex:THEINDEXOFTHEVIEWCONTROLLERTOUNWINDTO]
animated:YES];
もう少し詳細については、この投稿の私の答えを参照してください: UIStoryboardのルートViewコントローラーにプッシュ
終了前にコードを実行したいだけの場合(ただし、単純にしておくと、何かを返すまでUIロックが発生canPerformUnwindSegueAction:fromViewController:withSender:
します)、宛先コントローラーをオーバーライドできます。
おそらくこのようなもの:
- (BOOL)canPerformUnwindSegueAction:(SEL)action
fromViewController:(UIViewController *)fromViewController
withSender:(id)sender
{
// Some operation...
return YES; // Or NO if something went wrong and you want to abort
}
それ以外の場合は、実際にプログラムでセグエを作成し、をオーバーライドしてアニメーション/アンワインドロジックを管理できますsegueForUnwindingToViewController:fromViewController:identifier:
。
UIViewControllerでこのメソッドを呼び出すことにより、コードでセグエを発生させることができます
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
ストーリーボードの2つのビューの間にセグエを作成します。セグエに名前を付け、識別子パラメータで正確な名前を使用するようにしてください。