【发布时间】:2013-04-30 17:50:14
【问题描述】:
我在整个应用程序中使用导航栏,尽管不是通过导航控制器(通过情节提要添加到 VC)的控制器。
我想在导航控制器上将左栏按钮项设置为相同,直到它的使用。这是将滑入的菜单的堆栈样式:
按照标准做法实现此按钮的正确方法是什么?我可以将按钮的 bg 剥离为可重复的,这不是问题,但是如何完成以下操作: 1.在按钮内实现图像 2. 如果可能的话,通过外观 API 实现这个按钮,这样代码就不是胶水代码,而是在所有有这个的 VC 上重复使用。
如果我不能通过外观进行操作,那么不必在使用它的控制器中一遍又一遍地包含此代码的最佳方法是什么?
除此之外,有没有办法在情节提要中显示此按钮项并在情节提要中链接/具有视觉以外的用途。
【问题讨论】:
-
您可以为 viewController 创建一个类别并将该 navBarItem 添加到 navBar。如果您没有使用该按钮进行导航,那么该按钮的预期结果是什么?菜单是否滑入整个栏的下方?您可以将 bar 项的 image 属性用于图像。
-
是的,菜单正在滑入下方。对于多个 VC 来说也是一样的。我会使用图像属性而不是拉伸图像只是将其用作整个图像吗?它不适用于所有视图控制器,但有 7 个左右会使用它,你还推荐一个类别吗?
-
@MarkM - 你还有其他关于需要什么的信息吗?如何创建类别和方法?
-
我会使用 CAGradient 创建导航栏,然后将 leftBarItem 设置为您显示的按钮及其图像。您可以将该按钮上的操作设置为在菜单中设置动画,但如果您将其用于导航,则需要在 viewwillAppear 上隐藏 backBarButton,否则它可能会争夺 leftBarButton 的位置(导航控制器在按下后自动添加后退按钮一个看法)。从一个视图开始,然后您可以在获得正确的外观以供重复使用后实例化该类。
-
谢谢,根据问题,这不是导航控制器堆栈的一部分,因此后退按钮不会成为问题。我发现如何完成这个最好的方法是为导航栏创建一个类,然后将按钮添加到 awakeFromNib 方法,然后我可以在需要时将栏添加到情节提要 VC 中并指向正确的类。我想这就是我一直在寻找的。谢谢@MarkM
标签: ios ios5 uinavigationcontroller uinavigationbar uinavigationitem