我怎么能animation的UIViewController推UINavigationBar背景更改?

我的应用程序使用UINavigationBar的两个不同的背景来向用户指示他们在层次结构中的级别。 当我推UIViewController需要第二个背景它缺乏animation,只要推UIViewController,背景立即改变。 我怎样才能让这个animation变成背景变化,因为视图正在改变?

我知道这是一个古老的线程,但这对我工作:

CATransition *transition = [CATransition animation]; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; transition.type = kCATransitionFade; transition.duration = 0.5; [self.navigationController.navigationBar.layer addAnimation:transition forKey:nil]; [self.navigationController.navigationBar setBackgroundImage:[[UIImage imageNamed:@"navigationbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(44, 20, 44, 20)] forBarMetrics:UIBarMetricsDefault]; 

把它放在你的viewDidLoad方法里面。 你需要链接/导入QuartzCore框架。