简体   繁体   English

如何更改导航栏上的后退按钮的图像?

[英]How to change the image of back button on the navigation bar?

In a storyboard, I create a navigation bar by using "Embed in". 在情节提要中,我通过使用“嵌入”来创建导航栏。

I'm trying to replace the original image of back button, which is like this 我正在尝试替换后退按钮的原始图像,就像这样

在此处输入图片说明

by my back button image, which is 通过我的后退按钮图像

在此处输入图片说明

How to do this? 这个怎么做?

In your controllers viewDidLoad method add following code.. 在控制器的viewDidLoad方法中添加以下代码。

UIImage *leftbuttonImage = [UIImage imageNamed:@"yourimagename"];
        UIButton *leftbutton = [UIButton buttonWithType:UIButtonTypeCustom];
        [leftbutton setImage:leftbuttonImage forState:UIControlStateNormal];
        leftbutton.frame = CGRectMake(0, 0, 35, 35);
        [leftbutton addTarget:self action:@selector(showLeftMenuPressed:) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *customBarleftItem = [[UIBarButtonItem alloc] initWithCustomView:leftbutton];

        self.navigationItem.leftBarButtonItem = customBarleftItem;
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];  
UIImage *backBtnImage = [UIImage imageNamed:@"BackBtn.png"]  ;  
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];  
[backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside];  
backBtn.frame = CGRectMake(0, 0, 54, 30);  
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;  
self.navigationItem.leftBarButtonItem = backButton;

and declare goback: 并声明goback:

- (void)goback
{
    [self.navigationController popViewControllerAnimated:YES];
}
-(void)setUpNAvigationBackBarButton
{

    UIImage* image3 = [UIImage imageNamed:@"icon_back.png"];
    CGRect frameimg = CGRectMake(0, 0, image3.size.width, image3.size.height);
    UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg];
    [someButton setBackgroundImage:image3 forState:UIControlStateNormal];
    [someButton addTarget:self action:@selector(YourMethod which you wanna call on back button
         forControlEvents:UIControlEventTouchUpInside];


    UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
    [self.navigationItem setLeftBarButtonItem:mailbutton animated:YES];
}

just call this function in your viewdidLoad. 只需在您的viewdidLoad中调用此函数即可。 I have used same this function in ma code. 我在ma代码中使用了相同的功能。 working fine.. you can use it. 工作正常..您可以使用它。

Swift version :- 迅捷版:-

self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "HomeLeft@2x")
self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "HomeLeft@2x")
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

put this on viewDidLoad( ) 放到viewDidLoad()上

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM