【发布时间】:2014-01-02 15:42:18
【问题描述】:
这是我的自定义转场动画的代码:
[UIView animateWithDuration:.4 animations:^{
destinationViewController.view.frame = targetFrame;
buttonBarImageView.alpha = 0.0;
} completion:^(BOOL finished) {
[sourceViewController presentViewController:destinationViewController animated:NO completion:nil];
[buttonBarImageView removeFromSuperview];
}];
请注意,在上面的代码中,我在presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion 中为animated 传递了NO,因为我正在使用我的自定义动画并且不想使用任何标准动画。
我的目标视图控制器的方法viewWillAppear:(BOOL)animated 现在应该根据动画标志表现不同。在 VC 中,标志决定是否应该播放额外的内部动画。存在各种目标 VC,它们具有不同的内部动画。它们是我上面所说的自定义动画的补充。
但是,我不能将YES 传递给VC,因为我必须将NO 传递给presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion,这会导致NO 传递给VC。
如何防止presentViewController:... 运行动画并仍将YES 传递给VC 的viewWillAppear:(BOOL)animated 方法?
【问题讨论】:
标签: ios objective-c animation uiviewcontroller segue