10
votes

UIMODALEPRESENTEMENTATIONCURENTSEXTEXT AVEC TRANSITION?

J'essaie de présenter modal un contrôleur d'affichage comme ci-dessous: xxx

utilise maintenant uimodalpresentationcurrentContext signifie que je peux présenter cette vue avec un fond transparent et voir mon autre voir derrière le nouveau. Cependant, cela m'empêche de pouvoir le présenter avec une transition.

Des idées Pourquoi? Ou comment je peux me contenter de cela? Merci.


2 commentaires

Quel est le style de présentation de la mentalité de la vue?


@bbodayle, j'ai le même problème et j'ai essayé tous les styles de présentation / combinaisons sur les deux visiteurs.


3 Réponses :


11
votes

Les modules en plein écran ne sont pas censés vous permettre de voir le sous-couche. Je sais que je sais.

de votre code, je suppose que "addpopover" est en fait une vue en plein écran, où vous avez votre contenu en tant que sous-section pendant que le reste est transparent. P>

Essayez ceci:

vc.modalPresentationStyle = UIModalPresentationCurrentContext;
vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:vc animated:YES completion:NULL];


5 commentaires

Qu'est-ce qui est différent ici? Réglage modaltransitionStyle sur la vue cible n'a rien fait de différence et n'a pas été utilisé avec PresentViewController sur PresentModalViewController.


Affectant le style de transition à VC au lieu de auto , et en utilisant PresentViewController méthode. Sans voir votre scénario, il est difficile de diagnostiquer si cela ne fonctionne pas. Avec la méthode ci-dessus, votre VC superposé doit avoir la même taille que "Self" (ou pouvoir redimensionner)


Oui, dans mon projet, les deux voyageurs ont la même taille. J'ai essayé votre code et il n'y avait pas de changement. Le paramètre de propriété modalpresentationstyle = uimodalpresentationCurrentContext doit être appliqué à soi ici, pas VC. Je suppose que je devrai commencer ma propre question au lieu d'offrir une prime sur celle-ci car il n'y a pas de solution ici, même si elle est marquée comme une.


Liez-le ici et je vais essayer de vérifier. Désolé cela ne vous a pas aidé.


Mais «PrésentationViewController» (View Controller qui présente un nouveau contrôleur d'affichage) ne sera pas pivoté. Y'a-t'il un quelconque moyen d'y arriver?



25
votes

J'ai pu accomplir cela en définissant modalpresentationstyle = uimodalpresentationcurrentContext Code> Dans la racine racine de mon uiwindow, si je n'ai pas présenté aucun nouveau ViewContrôleurs en plein écran en haut de cette racine racine. J'ai fait quelque chose comme ceci:

UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:YES completion:nil];


6 commentaires

Cela a fonctionné pour moi. La clé visait à définir le modalpresentationStyle sur le contrôleur de présentation, et non le contrôleur d'affichage étant présenté.


Et si vous le présentez sur un UisplitViewController?


Je reçois un fond d'obstacles dès que l'animation est terminée. Je suis un deuxième contrôleur d'affichage sur une pile (sur le dessus) d'un UinavigationController J'ai essayé définir modalpresentationStyle = uimodalpresentationCurrentContext sur le VC pour apparaître, auto , autoavigationController et même appdelegate.window.rootviewcontroller en vain. De toute évidence, je manque quelque chose cependant, des idées?


Un autre problème avec cette approche est que la rotation des trous se casse.


Hey ça marche mais j'ai un autre problème avec la rotation. ViewController parent ne tourne pas en fonction de la rotation de mode de vue modal


Cela ne fonctionne pas pour moi dans iOS 7. iOS 8 c'est bien.



0
votes

mr. Les suggestions de T ont travaillé presque parfaitement, vous perdez simplement l'animation de transition sur la visualisation présentée

car elle définit également le style de présentation de l'Appdelegates RootViewController, il supprimera également les animations de transition pour toutes vues présentées à partir de ce point. < p> Mon correctif consistait à renvoyer le style de présentation de racines Appdelegatestroller Retour à la valeur par défaut Chaque fois que la vueController est fermée que j'avais besoin de l'arrière-plan transparent sur

J'ai un bouton qui rejette la présentationViewController, en ce que j'ai également défini le Style de présentation de la racine raccourci retour à la valeur par défaut à l'aide de: xxx

J'espère que cela aidera quelqu'un d'autre à se soulever sur ce problème.


0 commentaires