Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何更改导航栏上“后退”按钮的图像?_Ios_User Interface_Uinavigationbar - Fatal编程技术网

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

Ios 如何更改导航栏上“后退”按钮的图像?,ios,user-interface,uinavigationbar,Ios,User Interface,Uinavigationbar,在故事板中,我使用“嵌入”创建了一个导航栏 我试图替换“后退”按钮的原始图像,如下所示 通过我的后退按钮图像,这是 如何执行此操作?在控制器视图加载方法中添加以下代码 UIImage *leftbuttonImage = [UIImage imageNamed:@"yourimagename"]; UIButton *leftbutton = [UIButton buttonWithType:UIButtonTypeCustom]; [leftbutton s

在故事板中,我使用“嵌入”创建了一个导航栏

我试图替换“后退”按钮的原始图像,如下所示

通过我的后退按钮图像,这是


如何执行此操作?

在控制器视图加载方法中添加以下代码

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;
并宣布戈巴克:

- (void)goback
{
    [self.navigationController popViewControllerAnimated:YES];
}
只需在viewdidLoad中调用此函数。 我在ma代码中使用了相同的函数。工作很好。。您可以使用它。

Swift版本:-

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)

把这个放到viewDidLoad()

嗨,谢谢你的回复。在“[leftbutton addTarget:self action:@selector(showLeftMenuPressed:)forControlEvents:UIControlEventTouchUpInside];”行中,xcode表示未声明showLeftMenuPressed。我怎样才能摆脱它呢?很抱歉没提那件事。。将showLeftMenuPressed:method替换为要在单击“后退”按钮时调用的方法。请注意,如果替换“后退”按钮,则在iOS 7中返回的滑动手势将停止工作。以下是一些解决方案:
-(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];
}
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)