检查viewController push是否已设置动画

时间:2011-06-22 21:30:57

标签: objective-c cocoa-touch

在我的viewDidLoad方法中,我想检查一下viewController是如何被动画的。

在某些情况下,它是动画的,在其他情况下它不是动画的,并且取决于它是否是动画的,我想显示一些控件。

这就是我推动我的viewController的方式。

childController = [[CategoryOneDetailController alloc] initWithNibName:xibDownName bundle:nil];
[self.navigationController pushViewController:childController animated:NO];

任何人都可以帮助我吗?

谢谢,萨米。

修改

- (void)viewWillAppear:(BOOL)animated方法运行良好我用一些日志消息测试了它,但是一旦加载了视图,如果在我的视图中我有一个按钮,当点击时调用此方法

- (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];

}

现在当按下第二个视图时,日志报告它没有动画,但它确实是这里我需要检查推动是否动画。

2 个答案:

答案 0 :(得分:2)

实施viewDidAppear:(BOOL)animatedviewWillAppear:(BOOL)animated

在ViewController中:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if(animated) {
        //do what ever is needed when animted
    } else {
        //what will you do, if not animated?
    }
}

答案 1 :(得分:0)

唯一一次推送viewController而不进行动画处理的是应用程序是否已启动。 默认情况下,除非您为动画参数明确指定NO,否则任何其他推送都将被设置为动画。