7

我的 UIBackbutton 没有出现有问题,我不确定是什么原因造成的。

这是我制作后退按钮图像的代码,它在我的第一个 ViewController 中:

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

当您第一次进入下一个视图(通过按钮的转场完成)时,该按钮不可见,但要返回的文本可见。一旦我点击后退按钮,图像就会出现,并且在我下次单击它时它会一直出现。

我不确定这是否与我的代码或它所在的文件有关,或者是否与 iOS 7 问题有关。

4

4 回答 4

2

使用 UIBarButtonItem 并明确设置后退按钮背景可能会更幸运。

在我自己尝试让后退按钮与 iOS 7 一起使用时,外观代理一直不可靠。我遇到了同样的问题,第一次显示按钮时背景没有正确显示。

于 2013-09-16T19:23:17.917 回答
0

如果你只需要改变颜色,试试这个[[UINavigationBar appearance] setTintColor:[UIColor redColor]];

于 2013-09-24T03:25:18.043 回答
0

如果要更改后退按钮图像,只需编写以下 2 行代码:

[self.navigationBar setBackIndicatorImage:[UIImage imageNamed:@"icon-back"]];
[self.navigationBar setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"icon-back"]];

如果您创建 UINavigationController 的子类,则可以轻松自定义导航栏和推送和弹出控制器

于 2016-02-22T08:43:46.017 回答
-1

尝试这个:

self.navigationItem.hidesBackButton = NO;

如果您尝试将其添加到导航栏,则:

 UIImage* image4 = [UIImage imageNamed:@".....png"];
    button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 26, 26)];
    [button setBackgroundImage:....png forState:UIControlStateNormal];
    [button addTarget:self action:@selector(Selector)
         forControlEvents:UIControlEventTouchUpInside];
    [button setShowsTouchWhenHighlighted:YES];

    UIBarButtonItem *action = [[UIBarButtonItem alloc] initWithCustomView:button];
    NSArray *arr =[[NSArray alloc]initWithObjects:action, nil];
    self.navigationItem.rightBarButtonItems = arr;
于 2013-09-13T12:02:21.940 回答