セグエでリンクされたストーリーボードに 2 つのビュー コントローラーがあります。最初の View Controller は、UIImage を画面の中央から上部にスライドさせてから UIButton を表示するアニメーションを実行します。すべてうまく機能します。ただし、ボタンがタッチされると、セグエが実行され、モーダルに 2 番目のビュー コントローラーが表示されます。しかし、2 番目のビュー コントローラーが画面を上にスライドすると、UIImage がアニメーション化される前と同じように画面の中央に戻ることがわかります。
これです:
- (void)viewDidLoad{
[super viewDidLoad];
self.willAnimate=YES;
}
- (void)viewDidAppear:(BOOL)animated{
if (self.willAnimate) [self animate];
}
- (void) animate{
if (self.willAnimate){
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.8];
//hide button first
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.1];
self.myButton.alpha=0;
[UIView commitAnimations];
//move background
CGRect imgRect = self.myImageView.frame;
imgRect.origin.y-=200;
self.myImageView.frame=backgroundRect;
//restore button
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:1.8];
self.myButton.alpha=1;
[UIView commitAnimations];
[UIView commitAnimations];
self.willAnimate=NO;
}
}
- (IBAction)myButtonPressed {
[self performSegueWithIdentifier:@"mySegue" sender:self ];
}
これは、セグエがストーリーボードから最初のビュー コントローラーを読み込んでいるためですか? アニメーション後の画像をそのままにして、View Controller 間を行き来するにはどうすればよいですか?