Les UIViewController utilisés comme FormSheet modal peuvent être fermé d'un simple glissement du doigt vers le haut. Cette fonctionnalité apparût dans IOS 11 pose problème si vous gérez les déplacement des doigts à l'intérieur du formulaire (je m'en sert par exemple pour mettre une signature).
La solution la plus évidente est d'éviter les FormSheet si vous utilisez les déplacements au doigt.
L'autre solution est de désactiver la fonctionnalité en désactivant la reconnaissance de mouvement:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (@available(iOS 11.0, *)) {
for(UIGestureRecognizer *gr in self.presentationController.presentedView.gestureRecognizers) {
if([gr.name isEqualToString:@"_UISheetInteractionBackgroundDismissRecognizer"]) {
// disable la possibilité de quitter la feuille FormSheet ou PageSheet avec un glissement vers le haut
gr.enabled = false;
}
}
}
}
Commentaires