如何在UINavigationItem.rightBarButtonItem(或leftBarButtonItem)上添加多个UIBarButton?

Cal*_*Cal 15 iphone uinavigationbar uibarbuttonitem

我尝试过这种方法/ hack:http: //blog.blackwhale.at/2009/06/uibuttons-in-uinavigationbar/

问题是这留下了一个微弱的缝隙.我尝试将嵌套工具栏的背景图像设置为我捕获的应该是什么的图像.那没用.图像未应用.我也尝试使用嵌套的UINavigationBar,但似乎没有用.

我在几个iPhone应用程序中看到过这个.有谁知道怎么样?

[编辑]我希望按钮看起来像普通的UIBarButtonItems,并且能够使用系统样式,如UIBarButtonSystemItemAdd,UIBarButtonSystemItemRefresh.我提供的链接执行此操作,除了您可以看到一个微弱的接缝,因为它是嵌套在导航栏中的UIToolbar.

请不要提及违反人机界面指南.(我们知道).

我感谢你贡献你的黑客......这是唯一的方法!

Cra*_*g B 36

iOS 5.0现在支持多个按钮.请参阅UINavigationItem的iOS文档.具体来说,以下内容:

属性:

@property(nonatomic, copy) NSArray *leftBarButtonItems;
@property(nonatomic, copy) NSArray *rightBarButtonItems;
@property BOOL leftItemsSupplementBackButton;
Run Code Online (Sandbox Code Playgroud)

方法:

- (void)setLeftBarButtonItems:(NSArray *)items animated:(BOOL)animated;
- (void)setRightBarButtonItems:(NSArray *)items animated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)


ma1*_*w28 18

我发布了代码,在navigationBar的右侧添加了两个按钮.您可以设置barStyle = -1而不是子类UIToolbar.


Ste*_*man 6

要摆脱UIToolbar的背景('seam'),创建UIToolbar的子类并覆盖(void)drawRect:(CGRect)rect方法.将其留空,您的UIToolbar将不再具有背景.

刚在我自己的项目中使用它并且工作得很好.在以下评论中找到:http://osmorphis.blogspot.com/2009/05/multiple-buttons-on-navigation-bar.html

  • 仅供参考,iOS 5.0支持多个导航栏按钮.请参阅我在下面发布的答案.但是,如果需要部署较旧版本的操作系统,则仍需要使用本答案中描述的技术. (2认同)