IBAction を指定し、そのアクションを押すボタンにアタッチして、前のビュー コントローラーのいずれかに戻る必要があります。このアクション メソッド内で、アンワインド先のコントローラーを指定できます。
ここで、画像に従って、3 番目のコントローラーから 2 番目のコントローラーに巻き戻したいとします。したがって、3 番目のコントローラーで、次のアクション メソッドをボタンにアタッチします。また、ストーリーボードに移動し、各ビュー コントローラーにストーリーボード識別子を与えます。Second View Controller のストーリーボード識別子が「secondViewController」であると仮定しましょう。
-(IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SecondViewController *secondVC = [storyboard instantiateViewControllerWithIdentifier:@"secondViewController"];
int index = [self getMyDesiredViewControllerIndex:secondVC];
[self.navigationController popToViewController:[[self.navigationController viewControllers]objectAtIndex:index] animated:YES];
}
あなたのgetMyDesiredViewControllerIndex
方法は次のようになります-
-(int)getMyDesiredViewControllerIndex:(UIViewController*)desiredVC{
int i=0;
for(UIViewController *vc in [self.navigationController viewControllers]){
if([vc isKindOfClass:[desiredVC class]]){
return i;
}
i++;
}
return 0;
}
このようにして、必要なView Controllerにジャンプできます。目的のビュー コントローラーを指定し、getMyDesiredViewControllerIndex からインデックスを取得して、そのコントローラーにポップするだけです。
お役に立てれば!