iOS11 UIBarButtonItem ne fonctionne pas

J'ai une application qui est en direct dans le magasin. J'essaie de le préparer pour la version iOS11 mais j'ai eu un problème ennuyeux.

Aucun des UIBarButtonItem de l'application ne fonctionne correctement. Les LeftBarButtonItems sont cliquables mais la zone de clic est légèrement à droite de l'élément. Les rightBarButtonItems ne fonctionnent pas du tout! J'ai ajouté les éléments à la fois via le storyboard et via le code mais aucun d'eux ne semble fonctionner. S'il vous plaît aider!

Voici un exemple: –

 navigationItem.rightBarButtonItem = UIBarButtonItem(title: NSLocalizedSsortingng("Save", comment: "save button title"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(VC.rightBarButtonClicked(_:))) 

Avait le même problème. Il est descendu à une extension sur UIButton dans un file appelé "UIButton + MinimumTouchArea.swift" dans notre projet qui remplace UIButton.hitTest et casse UIBarButtonItem dans iOS 11. Il nous a fallu toute la journée pour comprendre!

L'action iOS11 UIBarButtonItem n'est pas appelée

couru dans le même, la solution pour moi était de build avec xcode 8.3 à la place (les appareils avec ios11 exécutant la construction de l'application par 8.3 a bien fonctionné)

Utilisez Xcode 8 avec iOS 11, vous pouvez utiliser cette solution de contournement pour déboguer les périphériques ios11 sur xcode 8.3

Oui, il y a un bug dans iOS 11 donc vous pouvez utiliser un autre moyen pour cela.

Utilisez interactivePopGestureRecognizer comme

  self.navigationController?.interactivePopGestureRecognizer?.delegate = self as! UIGestureRecognizerDelegate 

et mettre en œuvre la méthode de délégué comme

  func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { guard gestureRecognizer == interactivePopGestureRecognizer else { return true // default value } // Write you code here. }