【问题标题】:UIBackButton Background Image not appearingUIBackButton背景图像未出现
【发布时间】:2013-09-13 11:56:11
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我遇到了完全相同的问题,并且该问题发生在 iOS 7 上。我对此进行了很多搜索,但到目前为止没有找到解决方案。暂时保留蓝色默认 backBarButtonItem 并删除您的自定义 backgroundImage 可能会对您有所帮助。
  • 解决 iOS7 上自定义图形的常见问题。面临同样的麻烦
  • 你找到解决办法了吗?
  • 这是苹果的错误;解决方案iOS 7 custom back button

标签: ios objective-c uinavigationcontroller ios7 uibuttonbaritem


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果你想改变返回按钮的图像,你只需要写这 2 行代码:

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

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

      【讨论】:

        【解决方案4】:

        试试这个:

        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;
        

        【讨论】:

        • 您使用此代码创建的按钮不能用作 backBarButton。
        猜你喜欢
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2018-01-02
        • 2014-09-30
        • 1970-01-01
        相关资源
        最近更新 更多