UINavigationItem的持久rightBarButtonItem属性
-
03-07-2019 - |
题
这可能是一个愚蠢的问题,但是可以在 UINavigationController
管理的多个视图中保留正确的 UIBarButtonItem
吗?我有一个视图的进展,通常共享相同的权利 UIBarButtonItem
,但是当我将新视图推送到我的 UINavigationController
时,我必须每次都重新定义按钮,即使它没有改变。大多数情况下,从一个视图到下一个视图的明显过渡动画是困扰我的原因,因为完全相同的按钮会暂时淡出然后重新进入,这是不必要的,因为没有实际的视觉变化。我应该考虑只添加一个 UIButton
作为我的 UINavigationBar
的子视图,并完成一个“右侧栏按钮”。效果如何?
解决方案
我们在我们的应用中做到了这一点。我们创建了一个UIBarButtonItem,当用户导航时,我们从一个UIViewController交换到另一个UIViewBtroller。诀窍是使用UINavigationControllerDelegate,navigationController:willShowViewController:animated:方法。我们将传出的UIViewController的rightBarButtonItem设置为nil,将传入控制器的rightBarButtonItem设置为按钮。管理起来很痛苦,但它确实有效。
其他提示
可以将UIBarButtonItems创建为nib / xib文件中的独立实例。如果没有什么特别的事情可以阻止您在“界面”构建器中构建按钮,那么您应该将它连接到UINavigationItem的rightBarButtonItem属性,以用于需要重用按钮的每个视图控制器。没有目标c。