2009-07-24 111 views
1

可能吗?导航栏左侧的1个以上按钮

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

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

回答

2

简短的回答是:

是的,你有你自己的UIButton的观点(或其他UIControl子类)添加到导航控制器,你自己。因此,忽略自定义* ButtonItem属性并自行滚动。

一个涉及多一点的回答是:

苹果使得它很容易按照自己的准则HIG,但你是你自己,如果你想打破他们或自定义。在这种情况下,只允许使用一个按钮,因为实际点击区域大于显示按钮的大小 - 从可用性的角度来看,更容易点击。

多余:

顺便说一句,有左/ rightBarButtonItem和backBarButtonItem之间的微妙区别。左/右在当前UIViewController上指定。然而,后退由前面的UIViewController指定。

+0

如果我理解正确,点击框大于按钮是有意义的,但是分割按钮等等呢?苹果明确允许在他们的UIG。 – Brenden 2009-07-28 15:45:24

1

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

在相关说明上,我不确定这是否是最好的主意。坚持Apple的UI准则通常是明智的;没有其他地方可以放置编辑按钮吗?例如,酒吧的右侧?

+0

问题是2按钮,编辑和导入。它们都会影响所选的当前项目。我将不得不考虑其他导入选项。 – Brenden 2009-07-28 15:44:40

1

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