是否可以?
我有一个UINavigationBar
我想在“后退”按钮旁边有一个“编辑”按钮。从我读过的内容来看,您只能拥有一个或另一个,这是没有意义的,因为它们是navigationItem
对象的单独属性(backBarButtonItem 和 leftBarButtonItem)。
我假设您必须以某种方式将自定义UIView
插入UINavigationBar
. 我正在研究这个选项,如果没有给出更好的解决方案,那么我将概述这个方法。
是否可以?
我有一个UINavigationBar
我想在“后退”按钮旁边有一个“编辑”按钮。从我读过的内容来看,您只能拥有一个或另一个,这是没有意义的,因为它们是navigationItem
对象的单独属性(backBarButtonItem 和 leftBarButtonItem)。
我假设您必须以某种方式将自定义UIView
插入UINavigationBar
. 我正在研究这个选项,如果没有给出更好的解决方案,那么我将概述这个方法。
简短的回答是:
是的,您必须自己将自己的 UIButton 视图(或其他 UIControl 子类)添加到导航控制器。因此,请忽略自定义 *ButtonItem 属性并自行滚动。
更复杂的答案是:
Apple 可以很容易地遵循他们的 HIG 指南,但如果你想打破它们或自定义它们,你就得靠你自己了。在这种情况下,只允许一个按钮,因为实际的点击区域大于显示按钮的大小——从可用性的角度来看更容易点击。
无关的:
顺便说一句,left/rightBarButtonItem 和 backBarButtonItem 之间存在细微差别。在当前 UIViewController 上指定左/右。但是 back 是由前面的 UIViewController 指定的。
使用自定义视图确实是您唯一的选择。UINavigationBar 不是很灵活。您需要做的是创建一个包含 UIButtons 的 UIView。确保您意识到,如果您使用自定义视图,您将不会获得backBarButtonItem的任何自动行为;您必须创建自己的 IBAction,以及按钮的图形。
在相关说明中,我不确定这是不是最好的主意。遵循 Apple 的 UI 指南通常是明智的。没有其他地方可以放置编辑按钮吗?例如,栏的右侧?
虽然@Kelvin 的答案适用于 iOS 5 之前的版本,但如果您使用的是 iOS 5+,现在有一个leftBarButtonItems
数组属性。请注意,您还必须设置leftItemsSupplementBackButton
为 true。