iOS>如何删除自定义后退按钮右侧的白色标记

时间:2015-12-17 09:39:25

标签: ios objective-c uinavigationbar

我想在整个应用程序中自定义iOS后退按钮。所以我在AppDelegate.m文件中添加这些行:

UIImage *backButton = [UIImage imageNamed:@"btn_return"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[backButton resizableImageWithCapInsets:UIEdgeInsetsMake(0, backButton.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

结果如下: enter image description here

如你所见,右边有一个白色标记....有人知道为什么吗?我该如何删除它?

之前的视图控制器有一个空白区域作为后退按钮标题(在他的导航项目中)因为我不想要任何标签。 也许是因为那个?!还有其他解决方案没有看到默认"返回"标签?

非常感谢你的帮助

[编辑] 当我尝试Cy-4AH的答案时,我得到: enter image description here

5 个答案:

答案 0 :(得分:2)

以这种方式使用

UIImage *image1 = [[UIImage imageNamed:@"btn_return"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[self.menuBarBtn setImage:image1];

答案 1 :(得分:0)

您需要使用

[[UINavigationBar appearance] setBackIndicatorImage: backButton];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage: backButton];

如果您的部署目标是IOS 7 +

否则请求您的设计师在右侧添加一个像素空列。

答案 2 :(得分:0)

使用此代码:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
                                                     forBarMetrics:UIBarMetricsDefault];

答案 3 :(得分:0)

UIButton *backButton;
    backButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0,35 ,35)];
    backButton.imageEdgeInsets = UIEdgeInsetsMake(7, 7, 7, 7);
    [backButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(btnBackAction:) forControlEvents:UIControlEventTouchUpInside];
    [backButton setImage:[UIImage imageNamed:@"your back button image name"] forState:UIControlStateNormal];
    UIBarButtonItem *Rightbarbutton=[[UIBarButtonItem alloc]initWithCustomView:backButton];
    self.navigationItem.leftBarButtonItem=Rightbarbutton;

答案 4 :(得分:0)

使用此代码隐藏默认后退按钮

   self.navigationItem.hidesBackButton = YES;