2

以下を使用して、一連のカスタム セグエを使用して、あるビュー コントローラー ビューから別のビューにセグエします。

[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 でセグエを実行している場合、いいえ、それらは破棄されません。1 つに戻るには、[self.navigationController popViewControllerAnimated:YES]; を使用する必要があります。

于 2012-09-27T05:22:48.153 に答える