自定义NavgationController动画
只要把这两个方法作为UINavigationController的Category方法调用就可以了// UINavigationController+UINavigationController.h// xxx//// Created by yangping fang on 11-10-14.// Copyright (c) 2011年 EmatChina. All rights reserved.//#import <UIKit/UIKit.h>@interface UINavigationController (UINavigationController){ }- (void)pushAnimationDidStop;- (void)pushViewController: (UIViewController*)controller animatedWithTransition: (UIViewAnimationTransition)transition;- (UIViewController*)popViewControllerAnimatedWithTransition:(UIViewAnimationTransition)transition;@end?//// UINavigationController+UINavigationController.m// xxx//// Created by yangping fang on 11-10-14.// Copyright (c) 2011年 EmatChina. All rights reserved.//#import "UINavigationController+UINavigationController.h"@implementation UINavigationController (UINavigationController)- (void)pushAnimationDidStop{}- (void)pushViewController: (UIViewController*)controller animatedWithTransition: (UIViewAnimationTransition)transition { [self pushViewController:controller animated:NO]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)]; [UIView setAnimationTransition:transition forView:self.view cache:YES]; [UIView commitAnimations]; }- (UIViewController*)popViewControllerAnimatedWithTransition:(UIViewAnimationTransition)transition { UIViewController* poppedController = [self popViewControllerAnimated:NO]; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.5]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)]; [UIView setAnimationTransition:transition forView:self.view cache:NO]; [UIView commitAnimations]; return poppedController;}@end?