Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
Iphone iOS 11自定义后退按钮问题_Iphone_Swift_Ios11_Uinavigationitem - Fatal编程技术网

Iphone iOS 11自定义后退按钮问题

Iphone iOS 11自定义后退按钮问题,iphone,swift,ios11,uinavigationitem,Iphone,Swift,Ios11,Uinavigationitem,我想在iOS 11中的这个位置按下后退按钮 到目前为止,我在iOS 10上使用的代码在iOS 11上不起作用 这里有一个代码: let barBtnNeg = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: self, action: nil) barBtnNeg.width = -15.0 let btn: UIButton = UIButton(frame: CGRect(x: 0,

我想在iOS 11中的这个位置按下后退按钮

到目前为止,我在iOS 10上使用的代码在iOS 11上不起作用

这里有一个代码:

let barBtnNeg = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: self, action: nil)
barBtnNeg.width = -15.0
let btn: UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 27))
btn.setBackgroundImage(UIImage(named: "BackArrow"), for: UIControlState());
// Was CustomStatusViewController Changed to ChatThreadInfoViewController
btn.addTarget(self, action: #selector(ChatThreadInfoController.backButtonAction(_:)), for: UIControlEvents.touchUpInside)
let barBtnBack = UIBarButtonItem(customView: btn)
self.navigationItem.leftBarButtonItems = [barBtnNeg, barBtnBack]
我在iOS 11中为此使用的代码:

let view = UIView()
view.frame = CGRect(x: 0, y: 0, width: 40, height: 27)
let btn: UIButton = UIButton(frame: CGRect(x:-14, y: 0, width: 30, height: 27))
btn.setBackgroundImage(UIImage(named: "BackArrow"), for: UIControlState());
btn.addTarget(self, action: #selector(RoomMessageController.leftNavBackButtonPressed(_:)), for: UIControlEvents.touchUpInside)
btn.center = CGPoint(x: btn.center.x,y :view.center.y)
let tap = UITapGestureRecognizer(target: self, action: #selector(RoomMessageController.leftNavBackButtonPressed(_:)))
view.addGestureRecognizer(tap)
view.isUserInteractionEnabled = true
view.addSubview(btn)
let leftButtonItem = UIBarButtonItem(customView: view)
//add view to nav bar
self.navigationItem.leftBarButtonItem = leftButtonItem

问题是在iOS 11中,有时使用上述代码,我无法正确点击按钮,也无法使用默认的后退按钮,因为我需要自定义操作?

根据您的问题,您只需要显示自定义图像,而不是默认的后退按钮。因此,我建议您使用简单的UIBarButtonItem初始值设定项:

let backItem = UIBarButtonItem(image: UIImage(named: "BackArrow"), 
                               style: .plain, 
                               target: self, 
                               action: #selector(ChatThreadInfoController.backButtonAction(_:)))
self.navigationItem.leftBarButtonItem = backItem

它将为该按钮使用正确的框架,这样您在点击时不会遇到任何问题。

请查看。@DmitryKuznetsov WidthAnchor,HeightAnchor不工作