[ios] Afficher UIViewController en tant que popup dans l'iPhone


3 Answers

Popups modaux dans Interface Builder (Storyboards)

Étape 1

Sur le ViewController que vous voulez utiliser comme popup contextuel, désactivez la couleur d'arrière-plan de la racine UIView. Conseil: N'utilisez pas la racine UIView comme popup. Ajoutez un nouveau UIView plus petit pour être votre popup.

Étape 2

Créer une Segue à la ViewController qui a votre popup. Sélectionnez "Présenter Modalement".

Deux méthodes pour créer un popup à partir d'ici

Méthode 1 - Utilisation du Segue

Sélectionnez le Segue et modifiez la présentation en "Contexte actuel":

Deuxième méthode - Utilisation du View Controller

Sélectionnez la scène ViewController qui est votre popup. Dans l'Inspecteur des attributs, sous la section Contrôleur de vue, définissez Présentation sur "Contexte actuel":

L'une ou l'autre méthode fonctionnera. Ça devrait le faire!

Question

Comme il n'y a pas de réponse complète et définitive à cette question récurrente commune, je vais demander et répondre ici.

Souvent, nous devons présenter un UIViewController tel qu'il ne couvre pas le plein écran, comme dans l'image ci-dessous.

Apple fournit plusieurs UIViewController similaires, tels que UIAlertView , Twitter ou Facebook partager le contrôleur de vue, etc.

Comment pouvons-nous obtenir cet effet pour un contrôleur personnalisé?




N'hésitez pas à utiliser mon contrôleur de feuille de formulaire MZFormSheetController pour iPhone, dans le projet exemple, il existe de nombreux exemples sur la façon de présenter le contrôleur de vue modale qui ne couvre pas toute la fenêtre et a de nombreux styles de présentation / transition.

Vous pouvez également essayer la dernière version de MZFormSheetController qui s'appelle MZFormSheetPresentationController et qui a beaucoup plus de fonctionnalités.




Swift 4:

Pour ajouter une surimpression ou l'affichage contextuel Vous pouvez également utiliser la vue Conteneur avec laquelle vous obtenez un View Controller gratuit (vous obtenez la vue Conteneur à partir de la palette / bibliothèque d'objets habituelle)

Pas:

  1. Avoir une vue (ViewForContainer dans l'image) qui contient cette vue de conteneur, pour l'assombrir lorsque le contenu de la vue de conteneur est affiché. Connectez la prise à l'intérieur du premier View Controller

  2. Cacher cette vue lorsque le 1er VC charge

  3. Afficher lorsque le bouton est cliqué

  4. Pour réduire cette vue lorsque le contenu de la vue Conteneur est affiché, définissez l'arrière-plan des Vues sur Noir et l'opacité sur 30%

Vous obtiendrez cet effet lorsque vous cliquez sur le bouton




Imao mis UIImageView sur fond n'est pas la meilleure idée. Dans mon cas, j'ai ajouté sur la vue du contrôleur d'autres 2 vues. La première vue a [UIColor clearColor] sur le fond, la deuxième couleur que vous voulez être transparent (gris dans mon cas). Notez que cet ordre est important. Ensuite, pour la deuxième vue, définissez alpha 0.5 (alpha> = 0 <= 1). ceci à des lignes dans prepareForSegue

infoVC.providesPresentationContextTransitionStyle = YES;
infoVC.definesPresentationContext = YES;

Et c'est tout.




Related