8

我试图获得一个没有标题的后退按钮,但我无法让它工作。我真的是objective-c的新手...

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

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

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

知道如何使它工作吗?

4

6 回答 6

9

我改编的一个非常简单的使用 iOS 5 外观代理的 hack 如下(不用说,代理的好处是对所有导航栏的全局更改):

[[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)];
于 2012-11-17T09:22:03.207 回答
4

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

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

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

[self.navigationItem setBackBarButtonItem: newBackButton];
于 2012-10-27T22:58:40.300 回答
0
UIImage *image1 = [UIImage imageNamed:@"image.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

上面的代码用于在返回按钮中设置免费图像。

于 2012-10-30T07:01:27.830 回答
0

我还没有尝试过,但我认为它应该可以工作....把这个放到你的 viewdidLoad 中,我希望它是你要找的。

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" 
style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backBarButtonItem;
[backBarButtonItem release];
于 2012-11-02T11:10:03.123 回答
0

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

这就是我总是这样做的

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

我想您可以通过不提供任何标题将其设置为空

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

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

于 2012-10-31T11:00:57.020 回答
-4

只需在您已经编写的代码之后添加这一行:

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

希望它有效。

于 2012-10-30T12:37:15.777 回答