カスタムセグエがあります:
-(void)perform {
__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
__block UIViewController *destinationController = (UIViewController*)[self destinationViewController];
float duration = 0.5;
NSLog(@"FlipSegue.m - source:%@ dest:%@", sourceViewController, destinationController);
if (self.isUnwinding) {
NSLog(@"FlipSegue.m - isUndwinding - Flipping View 2 to View 1");
//[sourceViewController.navigationController dismissViewControllerAnimated:NO completion:nil];
[UIView transitionWithView:sourceViewController.navigationController.view duration:duration
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[sourceViewController.navigationController dismissViewControllerAnimated:NO completion:nil];
}
completion:NULL];
} else {
NSLog(@"FlipSegue.m - Going Forward - Flipping View 1 to View 2");
//[sourceViewController.navigationController pushViewController:destinationController animated:NO];
[UIView transitionWithView:sourceViewController.navigationController.view duration:duration
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[sourceViewController.navigationController pushViewController:destinationController animated:NO];
}
completion:NULL];
}
}
をセットアップし、segue
をunwind segue
使用していstoryboard
ます。
私はサブクラス化UINavigationController
し、使用してカスタム巻き戻しセグエを取得しています- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)
セグエ from View 1
toを呼び出すView 2
と、期待どおりに動作します。
アンワインド セグエを呼び出すと、View 2
反転しますが、View 2
再び表示されます。コードのisUnwinding
一部が起動しますが、View 1
再表示されません。
この問題を解決する方法についてのヒントをいただければ幸いです。