- (void)viewWillAppear:(BOOL)动画检测自定义动画

时间:2011-06-23 07:44:07

标签: objective-c if-statement animated viewwillappear commitanimations

我有一个按钮,按下时按下视图控制器,但是我使用的是自定义动画,因此pushViewController: childController animated:设置为NO。我想做的是在我的- (void)viewWillAppear:(BOOL)animated方法中检测这个自定义动画并写一个这样的if语句;

- (void)viewWillAppear:(BOOL)animated { 
     if (customAnimation occured) {//Do this} 
     else {//Do this}
}

这是我的按钮推送视图控制器的方法。

- (void)nextPressed:(id)sender {
    childController = [[CategoryOneDetailController alloc] initWithNibName:xibDownName bundle:nil];
    [UIView  beginAnimations: @"Showinfo"context: nil];
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.75];
    [self.navigationController pushViewController: childController animated:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];
    [UIView commitAnimations];
    [childController release];
}

非常感谢任何帮助,谢谢,萨米。

1 个答案:

答案 0 :(得分:1)

如果您不使用标准动画,我认为最好的办法是在推送的视图控制器中添加一个属性,在自定义动画的情况下设置为YESNO by默认不破坏任何现有行为)。然后,您可以在viewDidAppear:

中查看该属性

如果您需要在运行动画后执行自定义逻辑,则可能需要设置动画完成处理程序或块。