how to replace/customize back button image in storyboard navigationcontroller

前端 未结 2 1581
执笔经年
执笔经年 2020-12-19 12:54

I want to replace the text in the back button with a custom image. How can I do that in swift code? I don\'t want to replace the entire backbarbutton since I\'d like to ke

2条回答
  •  青春惊慌失措
    2020-12-19 13:38

    Try changing your leftBarButtonItem:

    self.navigationItem.leftBarButtonItem = 
        UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:nil);
    

    to a backBarButtonItem:

    self.navigationItem.backBarButtonItem = 
        UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:nil);
    

    in order to take advantage of backBarButtonItem's default action.

    And put that line of code in the view controller preceding the one you'd like your custom back button to appear in.

    Edit: If you don't want the "<" symbol to appear on your button, you'll have to in fact use a leftBarButtonItem then dismiss the view controller in a separate method, ex:

        self.navigationItem.leftBarButtonItem = 
            UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:"backButtonPressed:");
    
    }
    
    func backButtonPressed(sender:UIButton) {
        navigationController?.popViewControllerAnimated(true)
    }
    

提交回复
热议问题