我想更改我的UIBarButtonItems的背景图片。在根视图中,我希望它们是导航栏中的某个背景图像(但仍然是圆形矩形按钮),但在下一个视图中,我有一个UIToolBar,我希望它再次具有不同的背景。
我在我的app委托中使用了[[UIBarButtonItem] appearance]
来改变所有这些,但我现在意识到我想要一种风格,而另一种风格则是另一种风格。
更重要的是,我不仅要更改背景图像,还要更改某些形状。对于其中一个UIToolBar的UIBarButtonItems,我希望它在导航栏中的后退按钮形状。我怎么能实现这个目标?
我可以使用概述here的方法实现这两个目标吗?
基本上:我如何在整个应用程序中制作自定义UIBarButtonItems,并使其具有不同的形状?
答案 0 :(得分:0)
如果希望按钮在不同的视图控制器中看起来不同,则应在视图控制器中设置它们,而不是在委托中。在init方法或viewWillAppear:
方法中添加代码以自定义按钮。如果您要自定义UIToolbar
项,请使用与the link you gave类似的代码。如果它是导航栏,请执行以下操作:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//Customise button with background etc that you want
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.leftBarButtonItem = item;
//Release item if you're not using ARC
答案 1 :(得分:0)
您可以使用UIAppearance Protocol http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html
中的'appearanceWhenContainedIn'方法因此,对于工具栏,您可以使用:
[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil]
对于NavBar:
[UIBarButtonItem appearanceWhenContainedIn:[UINavigationController class], nil]