Désactiver le balayage geste à Swift

Été en regardant autour sur ici pour un certain temps mais n'arrive pas à trouver une solution qui fonctionne.

J'essaie de désactiver le glisser pour revenir à la vue précédente geste, en Swift.

J'ai essayé une variété de solutions, y compris:

self.navigationController?.interactivePopGestureRecognizer.enabled = false

et

self.navigationController.interactivePopGestureRecognizer.delegate = self

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer!) -> Bool {
    return false
}

Est-il une nouvelle façon de faire ceci ou d'une autre méthode qui fonctionne?

  • Il est à l'origine d'un problème lorsqu'un utilisateur n'a pas entièrement le balayage, et interfère avec la nature de l'INTERFACE utilisateur, nous utilisons (temps de recherche dans une piste audio)
  • Eh bien, je ne veux pas faire dérailler votre question, mais je vous suggère de (1) résoudre le n'est pas complètement balayez vers la question et (2) tiret votre piste audio à la recherche de l'INTERFACE utilisateur de sorte qu'il n'est pas si près du bord. C'est prévu UX, et est particulièrement important pour l'iPhone 6 Plus et iPad, où les utilisateurs c'est une sorte de tracas pour obtenir la barre de navigation.
  • De toute façon, votre code doit désactiver le geste de reconnaissance. Cela fonctionne sur les anciennes versions d'iOS?
  • Ah bon point au sujet de l'iPhone 6 - je vais peut-être regarder la modification de la méthode dealloc - mais je vais quand même laisser la question ouverte que je suis intéressé néanmoins
  • Je suis en essais sur iOS 8 minimum
  • J'ai été en mesure de le faire avec le retour de faux dans gestureRecognizerShouldBegin. Êtes-vous d'obtenir de rappel à gestureRecognizerShouldBegin ? Peut-être que vous mettez ce code dans le mal-vue-contrôleur...

InformationsquelleAutor Phil Hudson | 2015-07-30