我在情节提要中有两个视图控制器,它们由 segue 链接。第一个 View Controller 做了一个动画,它将 UIImage 从屏幕中间滑到顶部,然后显示一个 UIButton,一切都很好。但是,当按钮被触摸时,我会执行一个 segue,在模态框上显示第二个视图控制器。但是当第二个视图控制器向上滑动屏幕时,我可以看到 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 ];
}
发生这种情况是因为 segue 正在从情节提要加载第一个视图控制器吗?如何在视图控制器之间来回转换,使图像保持动画后的状态?