导航栏左侧有一个以上的按钮

时间:2009-07-24 22:48:16

标签: iphone uinavigationbar

有可能吗?

我有一个UINavigationBar,我希望在“后退”按钮旁边有一个“编辑”按钮。从我所读到的,你只能有一个或另一个,这是没有意义的,因为它们是navigationItem对象的独立属性(backBarButtonItem和leftBarButtonItem)。

我假设您必须以某种方式将自定义UIView插入UINavigationBar。我正在研究这个选项,如果没有给出更好的解决方案,那么我将概述这种方法。

3 个答案:

答案 0 :(得分:2)

简短的回答是:

是的,您必须自己将自己的UIButton视图(或其他UIControl子类)添加到导航控制器。因此,请忽略自定义* ButtonItem属性并自行滚动。

更多参与的答案是:

Apple可以很容易地遵循他们的HIG指南,但如果你想打破它们或自定义,你就可以自己动手了。在这种情况下,只允许一个按钮,因为实际命中区域大于显示按钮的大小 - 从可用性的角度来看更容易命中。

<强>外来:

顺便说一下,left / rightBarButtonItem和backBarButtonItem之间有一个细微的区别。在当前的UIViewController上指定左/右。但是后面是由前面的UIViewController指定的。

答案 1 :(得分:1)

使用自定义视图确实是您唯一的选择。 UINavigationBar不是非常灵活。您需要做的是创建一个包含UIButtons的UIView。确保您意识到如果您使用自定义视图,则会获得backBarButtonItem的自动行为的 none ;你必须创建自己的IBActions,以及按钮的图形。

在相关的说明中,我不确定这是最好的主意。坚持使用Apple的UI指南通常是明智之举;没有其他地方你可以把编辑按钮?栏的右侧,例如?

答案 2 :(得分:1)

虽然@Kelvin的答案适用于iOS 5之前的版本,但如果你使用的是iOS 5+,那么现在有一个leftBarButtonItems数组属性。请注意,您还必须将leftItemsSupplementBackButton设置为true。