添加自定义按钮到导航控制器没有边框

我向导航控制器添加自定义按钮

     UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@“back.png”]
                                                                   风格:UIBarButtonItemStylePlain
                                                                  目标:自
                                                                  动作:@selector(backAction)];
     self.navigationItem.leftBarButtonItem = backButton;

它工作正常,但按钮出现边框。 我该如何解决这个问题?

更新我找到了解决方案

   
  UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(0,0,25,25)];
     [button setImage:[UIImage imageNamed:@“back.png”] forState:UIControlStateNormal];
     [button addTarget:self action:@selector(buttonFavoriteClicked)forControlEvents:UIControlEventTouchUpInside];
     UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:button];
     [按钮释放];
 
self.navigationItem.leftBarButtonItem = back; 

尝试这个。

 UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, button_width, button_height)]; [backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal]; [backButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 

对于Swift 4

 let backButton = UIButton(frame: CGRect(x: 0, y: 0, width: 25, height: 25)) backButton.setImage(UIImage(named: "back.png"), for: .normal) backButton.addTarget(self, action: #selector(backAction), for: .touchUpInside) self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: backButton) 

而action(selector)应如下所示:

 @objc func backAction () { // do the magic }