2

我使用一堆自定义 segue 从一个视图控制器视图到另一个使用:

[self performSegueWithIdentifier:@"createTeamAccountSegue" sender:self];

我的问题是,之前的视图会在 iOS5 和 6 中自动销毁吗?

我一直需要创建自定义转场以转到下一个视图,然后反向创建另一个新的转场动画以返回上一个视图。只要他们不不断堆积起来,那么这应该没问题吧?

编辑:我可能应该向您展示我的自定义 UIStoryboardSegue 类的一般布局:

- (void) perform {

UIViewController *sourceViewController = (UIViewController *) self.sourceViewController;
UIViewController *destinationViewController = (UIViewController *) self.destinationViewController;

UIView *parent = sourceViewController.view.superview;

[parent addSubview:destinationViewController.view];
[parent sendSubviewToBack:destinationViewController.view];

sourceViewController.view.layer.masksToBounds = NO;
sourceViewController.view.layer.cornerRadius = 8; // if you like rounded corners
sourceViewController.view.layer.shadowOffset = CGSizeMake(0,0);
sourceViewController.view.layer.shadowRadius = 10;
sourceViewController.view.layer.shadowOpacity = 1;

destinationViewController.view.frame = CGRectMake(0, 20, destinationViewController.view.frame.size.width, destinationViewController.view.frame.size.height);
sourceViewController.view.frame = CGRectMake(0, 20, sourceViewController.view.frame.size.width, sourceViewController.view.frame.size.height);

[UIView animateWithDuration:.3 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^
 {
     sourceViewController.view.frame = CGRectMake(0, parent.frame.size.height, sourceViewController.view.frame.size.width, sourceViewController.view.frame.size.height);

 } completion:^(BOOL finished)
 {
     [sourceViewController presentViewController:destinationViewController animated:NO completion:NULL];
 }];

}

4

1 回答 1

3

如果你在 UINavigationController 中进行 segues,那么不,它们不会被破坏。要返回一个,您应该使用 [self.navigationController popViewControllerAnimated:YES];

于 2012-09-27T05:22:48.153 回答