2017-09-25 5 views
0

Screenshot Comment rejeter UIAlertController sur contact extérieur sans UIalertactionstyle annuler dans ios

Salut ... Je rencontrais une application dans laquelle je me sers UIAlerController pour afficher la présentation d'alerte.

Je réussis à le montrer mais le problème est que je ne peux pas rejeter la vue sur le toucher à l'extérieur. Je dois créer une vue manuellement et un bouton d'annulation (montré dans la capture d'écran).

Je sais que je peux obtenir le contact avec mettre Uialertactionstyle annuler mais cela rend mon UI impropre.

Alors Y a-t-il un autre moyen pour que l'événement tactile soit hors de contact?

Merci d'avance.

+0

Envoyer cette - Ajouter le geste que vous voulez et rejeter les -https d'alerte: //stackoverflow.com/questions/4660371/how-to-add-a-touch-event-to-a-uiview –

+0

Merci pour votre réponse. J'ai essayé cela mais le geste ne fonctionne que pour cette vue ayant un fond blanc. Il ne donne pas de contact extérieur que j'ai spécifié. – Manthan

+0

Ajoutez le geste à afficher en premier, puis '[self.view endEditing: YES];' –

Répondre

0

J'essaie d'utiliser l'outil de Xcode pour voir la hiérarchie de la vue, et il ressemble comme ci-dessous:

enter image description here

je trouve la vue correcte d'ajouter le geste du robinet, donc je modifier le code et il fonctionne .

UIAlertController alert; 
partial void UIButtonTouchUpInside(UIButton sender) 
{ 
    alert = UIAlertController.Create("title", "msg", UIAlertControllerStyle.ActionSheet); 
    this.PresentViewController(alert, true,() => 
    { 
     UITapGestureRecognizer tap = new UITapGestureRecognizer(tapAction); 
     alert.View.Superview.Subviews[0].AddGestureRecognizer(tap); 
    }); 
} 
void tapAction() 
{ 
    alert.DismissViewController(true, null); 
}