只要把这两个方法作为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