2015-05-09 34 views
1

我有一個基於導航的應用程序,我想更改推送和流行動畫的動畫。我會怎麼做?基於導航的應用中的推送和流行動畫

當我推任何viewController它表示爲彈出和當我彈出任何viewController它表示爲推。

+1

由於iOS的7之前,對這個官方的API;請參閱UINavigationControllerDelegate的自定義過渡動畫支持。還有關於這個的WWDC 2013視頻。從這裏你將不得不考慮它是否支持ios8等。 –

+0

看看這個問題http://stackoverflow.com/questions/1406037/custom-animation-for-pushing-a-uiviewcontroller –

回答

1
-(void)pushViewController:(UIViewController *)viewController{ 

    float width = self.frame.size.width; 
    float height = self.frame.size.height; 

    [viewController.view setFrame:CGRectMake(width, 0.0, width, height)]; 
    [self addSubview:viewController.view]; 
    [UIView animateWithDuration:0.33f 
          delay:0.0f 
         options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction 
        animations:^{ 
         [viewController.view setFrame:self.frame]; 
         [self setFrame:CGRectMake(0.0, 0.0, width, height)]; 
        } 
        completion:^(BOOL finished){ 

        }]; 

} 
2
CATransition *transition = [CATransition animation]; 
    transition.duration = 0.3f; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionPush; 
     transition.subtype=kCATransitionFromRight; 
    kCATransitionFromLeft or kCATransitionFromRight 
    [self.navigationController.view.layer addAnimation:transition forKey:nil]; 

添加此你推視圖控制器的自定義動畫