2011-07-14 33 views
-2
+ (void) AnimateSwitchingWithParent: (UIViewController *) ParentController From: (UIViewController *) From To: (UIViewController*) To { 

To.view.frame = ParentController.view.bounds; 

[UIView transitionFromView:From.view toView:To.view 
     duration:1 
     options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL]; 

ParentController.view = To.view; 

[To viewWillAppear:true]; 
} 

这是我的动画,如果要将视图从1视图更改为另一个视图,但我有问题,我有一个名为filter的viewController,在那里我有Button,称为Reset,将重置 里面的所有内容,但要显示重置已经完成,我想打电话这个iOS动画块有什么问题?

[self AnimateSwitchingWithParent:self From:self To:self];

但结果是我的视图空白。怎么会这样?任何一个有另一种方式?

+3

请开始使用命名约定,即正确的大写和小写。它使阅读和理解代码变得更容易(并防止错误)。 – Eiko

回答

1

如果您在重置内容时必须翻转当前视图控制器的视图,请使用transitionWithView:duration:options:animations:completion:方法。

[UIView transitionWithView:self.view 
        duration:1.0f 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^(void) { 
        [self resetStuff]; 
       } 
       completion:nil]; 

旁注

您的问题目前的实现将是视图层次结构中切换视图是有用的。假设From.viewParentController.view的子视图,那么下面的语句将替换From.viewTo.view作为ParentController.view的子视图。

[UIView transitionFromView:From.view toView:To.view 
    duration:1 
    options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL]; 

你绝对不需要这么做,

ParentController.view = To.view; 

否则,它将取代ParentControllerview你究竟想要绝对矛盾的过渡动画上,这可能是来自不同之前的路线。

你必须肯定不会被调用,

[To viewWillAppear:true]; 

直接。

我的理解你应该能够删除最后两行。