【发布时间】:2015-01-07 17:34:10
【问题描述】:
我有一个自定义的转场:
-(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];
}
}
我已经使用storyboard 设置了segue 和unwind segue。
我已将UINavigationController 子类化,并且正在使用- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *) 获得自定义展开转场
当我调用从View 1 到View 2 的segue 时,它按预期工作。
当我调用 unwind segue 时,View 2 翻转,但再次显示 View 2。代码的isUnwinding 部分会触发,但View 1 不会再次出现。
任何有关如何解决此问题的提示将不胜感激。
【问题讨论】:
标签: ios objective-c segue uistoryboardsegue unwind-segue