La façon de présenter une demi-modal-vue-contrôleur sur le dessus avec iOS 7 transitions personnalisées
Comment pourrais-je aller sur la présentation d'un "demi-vue" contrôleur sur le dessus de l'écran principal contrôleur?
Exigences:
- Présenter un second point de vue contrôleur qui glisse sur le dessus de la vue principale du contrôleur.
- Second point de vue contrôleur ne devrait montrer plus de la moitié de la vue principale du contrôleur de
- Principal-vue-contrôleur doit rester visible derrière seconde vue-contrôleur (fond transparent, ne montrant pas de noir en dessous)
- Second point de vue contrôleur doit animer avec animation similaire à modale verticale de couverture, ou iOS 7 de transition personnalisé
- L'utilisateur peut toujours interagir avec des boutons sur l'écran principal contrôleur lors de la seconde vue-contrôleur est actif (c'est à dire la seconde vue contrôleur ne couvre pas l'ensemble de la principale-vue-contrôleur)r
- Second point de vue contrôleur a sa propre logique complexe (ne peut pas être un simple point de vue)
- Les story-boards, Enchaîne, iOS 7 uniquement
- sur iPhone uniquement, pas d'iPad.
J'ai essayé avec un modal-vue-contrôleur, mais cela ne permet pas d'interaction avec vue principale du contrôleur. Quelqu'un peut-il donner un exemple de comment faire cela avec iOS7 transition personnalisée ou une autre méthode.
OriginalL'auteur johnsampson | 2014-04-05
Vous devez vous connecter pour publier un commentaire.
Une façon de le faire est d'ajouter le "demi-modal" contrôleur comme un enfant-vue-contrôleur, et d'animer son point de vue sur la place. Pour cet exemple, j'ai créé le "demi-modal" contrôleur dans le storyboard avec un cadre qui est à la moitié de la hauteur d'un 4" écran de l'iPhone. Vous pouvez utiliser plusieurs méthodes dynamiques pour tenir compte des différentes tailles d'écran, mais ce devrait vous obtenir a commencé.
vous pouvez obtenir un pointeur à l'écran principal contrôleur avec soi-même.parentViewController, et l'utiliser pour appeler toggleHalfModal.
désolé. Je suis un vrai débutant. J'ai eu la modale de travail grâce à votre code. Comment pourrais-je appeler toggleHalfModal de l'modale à l'aide de l'auto.parentViewController?
de la même façon, vous appeler n'importe quelle méthode -- [objectToSendMessageTo message]; Dans ce cas, l'objet que vous souhaitez envoyer le message à l'est de l'auto.parentViewController (vous aurez à le jeter en sorte que le compilateur sait ce que c'est, et de l'importer .h de fichier). Ce qui vous donne [(MainViewController *)auto.parentViewController toggleHalfModal]; Remplacer MainViewController avec quel que soit le nom de la classe est de ce contrôleur.
Un autre moyen serait d'ajouter un semi-opaque (noir avec un alpha de faible valeur) en vue détruisent la vue d'origine avant d'animer dans la nouvelle vue.
OriginalL'auteur rdelmar