2014-07-15 45 views
2

我在常规UIViewController(而不是UINavigationController)中使用UINavigationBar,并使用setItems:animated,pushNavigationItem:animatedpopNavigationItem:animated更新了导航栏的内容,并将动画设置为YES。 工作正常,除了我想要导航栏的交叉淡入淡出动画,而不是将前一个栏“推”到左侧或右侧的内置动画。UINavigationBar setItems/pushNavigationItem/popNavigationItem的自定义动画?

到目前为止,我可以看到如何做到这一点是手动设置标题,左和酒吧的权利内容的唯一途径,利用setLeftBarButtonItems:animatedsetRightBarButtonItems:animated大概为标题自定义视图与setTitleView让我能做交叉淡入淡出。 有人对我的问题有更好的解决方案吗?

回答

1

只是尝试这样做,它的工作:

[UIView transitionWithView:self.navBar duration:2.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ 

     myNavigationItem.leftBarButtonItem = newLeftItem; 
     myNavigationItem.rightBarButtonItem = newRightItem; 
     myNavigationItem.title = @"My New Title"; 
    } completion:nil]; 
+0

不幸的是这并没有为我工作。可能是因为我在标题中使用自定义视图而不是标题文本。我正在使用类似的东西,我独立更新左侧和右侧图标(setLeft/RightBarButtonItems:animated),并在标题视图中的两个子视图之间进行交叉淡入淡出。 –