UIBackButton背景图像没有出现

时间:2013-09-13 11:56:12

标签: ios objective-c uinavigationcontroller ios7 uibuttonbaritem

我的UIBack按钮没有出现问题,我不确定是什么导致它。

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

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

当您第一次进入下一个视图(由按钮中的segue完成)时,该按钮不可见,但可以看到要返回的文本。一旦我点击后退按钮,图像就会出现,并在下次单击时保持显示。

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

如果您只是需要更改颜色,请尝试使用此[[UINavigationBar appearance] setTintColor:[UIColor redColor]];

答案 2 :(得分:0)

如果你想改变后退按钮图像,你只需要编写这两行代码:

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

如果你创建UINavigationController的子类,它可以很容易地自定义你的导航栏和推送&流行控制器

答案 3 :(得分:-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;