2009-04-29 135 views
8

这可能是一个愚蠢的问题,但它有可能保持在一个UINavigationController管理的多个视图上的权利UIBarButtonItem?我有一系列视图,它们通常具有相同的权利UIBarButtonItem,但是当我将新视图推送到UINavigationController时,即使没有更改,我也必须每次重新定义按钮。大多数情况下,从一个视角到另一个视角的明显的过渡动画是困扰我的,因为完全相同的按钮会短暂地淡出然后返回,这是没有必要的,因为没有实际的视觉变化。我应该考虑只需添加一个UIButton作为我的UINavigationBar的子视图,并通过这种方式实现“正确的按钮”效果?持久rightBarButtonItem UINavigationItem的属性

回答

14

我们在我们的应用程序中做到了这一点。我们创建了一个UIBarButtonItem,我们在用户导航时从一个UIViewController交换到另一个UIBarButtonItem。窍门是使用UINavigationControllerDelegate,navigationController:willShowViewController:animated:方法。我们将传出的UIViewController的rightBarButtonItem设置为nil,并将传入的控制器的rightBarButtonItem设置为您的按钮。管理是一件痛苦的事情,但它很有效。

+0

太棒了!谢谢。我忘了调查UINavigationControllerDelegate。 – LucasTizma 2009-05-13 14:31:23

+0

谢谢!为我工作! :) – 2012-04-20 10:17:39

1

UIBarButtonItems可以创建为nib/xib文件中的独立实例。如果没有什么特别的事情阻止你能够在Interface Builder中构建按钮,那么应该将它连接到需要重用该按钮的每个视图控制器的UINavigationItem的rightBarButtonItem属性。没有目标需要。