Der folgende Code funktioniert gut in iOS 10 und darunter. Ich habe vor kurzem Xcode 9.0 Beta 5 installiert und iOS 11 Beta 7 auf dem iPad Air zum Testen installiert. Jetzt wird die replaceMenuTapped-Methode nicht ausgeführt.UITapGestureRecognizer auf navigationItem.titleView funktioniert nicht auf iOS 11
self.remedyMenuView = Bundle.main.loadNibNamed("RemedyMenu", owner: self, options: nil)![0] as? RemedyMenu
self.remedyMenuView?.isHidden = true
self.navigationItem.titleView = remedyMenuView;
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(RemedyDetailVC.remedyMenuTapped(_:)))
self.remedyMenuView?.addGestureRecognizer(tapGesture)
Es ist möglich erfordern tapGesture.delegate = selbst? oder für Gesten Konflikte zu vermeiden, diese Delegatmethode Erweiterung Viewcontroller: UIGestureRecognizerDelegate { func GestureRecognizer (_ GestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { return true } } oder .isUserInteractionEnabled vielleicht auf benutzerdefinierten Ansicht – Lito
Geste funktioniert nicht, wenn Sie eine Ansicht ausblenden, isHidden auf "false" setzen, versuchen Sie es. – AshokPolu
@AshokKumarReddyPolu Das mache ich auf viewDidLoad dann auf viewDidAppear self.remedyMenuView? .isHidden = false Und Benutzerinteraktion ist in RemedyMenu in Xib aktiviert. – Homam