没有标题IOS5的setBackButtonBackgroundImage

时间:2012-10-11 01:12:19

标签: objective-c xcode ios5 user-interface uiappearance

我正在尝试获得没有标题的后退按钮,但我无法使其工作。我在目标方面真的很新......

UIImage *backButtonImage = [[UIImage imageNamed:@"back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 30, 50)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage
                                                  forState:UIControlStateNormal
                                                barMetrics:UIBarMetricsDefault];

使用该代码我有我的后退按钮,但也有上一页的标题。

我找到了一些使用UIViewController类的工作示例,但在我的例子中,代码位于appDelegate.m文件中。

知道如何让它发挥作用吗?

6 个答案:

答案 0 :(得分:9)

我使用iOS 5外观代理的非常简单的黑客攻击如下(不用说,代理的好处是对所有导航栏进行全局更改):

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0)
                                                     forBarMetrics:UIBarMetricsDefault];

此方法适用于iOS 5 SDK,因此无需担心。


修改

为避免图像拉伸,请使用以下命令:

UIImage* image = [UIImage imageNamed:@"back"];
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)];

答案 1 :(得分:4)

据我所知,您正确设置外观代理。这里的问题是为你的后退按钮设置一个新标题。

为此,请根据您的行为创建自定义按钮,并将其用作新的后退按钮。 在推送或弹出所述视图控制器之前设置此项,例如在init

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@""
                                                               style:UIBarButtonItemStyleBordered
                                                              target:nil
                                                              action:nil];

[self.navigationItem setBackBarButtonItem: newBackButton];

答案 2 :(得分:0)

UIImage *image1 = [UIImage imageNamed:@"image.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

以上代码用于在后退按钮中设置背景图像。

答案 3 :(得分:0)

据我了解,您正在询问如何更改后退按钮的标题。

这是我一直这样做的方式

self.navigationItem.backBarButtonItem.title=@"My Title";

我猜你可以通过不给任何标题将其设置为空

self.navigationItem.backBarButtonItem.title=@"";

确保在推送新视图之前调用此函数。

答案 4 :(得分:0)

我没有尝试过,但我认为它应该可行....把它放到viewdidLoad中,我希望它能找到你想要的东西。

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" 
style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backBarButtonItem;
[backBarButtonItem release];

答案 5 :(得分:-4)

只需在您编写的代码后添加此行:

[[UIBarButtonItem appearance] setTitle:@""];

希望它有效。