UIModalPresentationCurrentContext avec Transition?
Je suis en train de modal présenter une vue contrôleur comme ci-dessous:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"addPopover"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:vc animated:YES];
Maintenant à l'aide de UIModalPresentationCurrentContext
signifie que je peux présenter ce point de vue avec un arrière-plan transparent et voir mes autre point de vue, derrière la nouvelle. Toutefois, il s'arrête-moi d'être en mesure de la présenter avec une transition.
Des idées pourquoi? Ou comment je peux contourner ce problème? Merci.
source d'informationauteur Josh Kahane
Vous devez vous connecter pour publier un commentaire.
Plein écran des modaux ne sont pas censés vous permettre de voir la sous-couche. Ennuyeux, je sais.
À partir de votre code, je suis en supposant que "addPopover" est en fait un affichage plein écran, où vous avez votre contenu dans un paragraphe alors que le reste est transparent.
Essayez ceci:
Note: je vous recommande l'ajout d'un alpha de faible couleur d'arrière-plan pour permettre à l'utilisateur de savoir qu'ils ne peuvent pas interagir avec le reste de la vue lorsque vous pop ce plus haut...
J'ai été en mesure d'accomplir ceci par la mise en
modalPresentationStyle = UIModalPresentationCurrentContext
sur le rootViewController de mon UIWindow, SI je n'ai pas présenté de nouveau en plein écran viewControllers sur le dessus de cette rootViewController. J'ai fait quelque chose comme ceci:J'ai essayé cela avec un UINavigationController que ma fenêtre est rootViewController et divers autres affichage personnalisé des contrôleurs. Il semble aussi longtemps que la fenêtre du rootViewController sait ce qui se passe, tout sous-viewControllers peut appeler
presentViewController:animated:completion:
sans noircir la vision sous-jacente.Cependant, disons que vous présenter une autre viewController sur le dessus de votre fenêtre de rootViewController. Et cette nouvelle viewController est présenté avec
modalPresentationStyle = UIModalPresentationFullScreen
(ie. prend en place de l'écran), alors vous devez appelermodalPresentationStyle = UIModalPresentationCurrentContext
sur que la plus haute viewController.Donc pour récapituler:
modalPresentationStyle = UIModalPresentationCurrentContext
sur le UINavigationController.modalPresentationStyle = UIModalPresentationCurrentContext
sur la nouvelle-UIViewController.J'espère que cela fonctionne pour vous les gars!
M. T suggestions travaillé près de la perfection, vous venez de perdre la transition de l'animation sur les viewcontroller
Puisque c'est aussi le réglage de la appDelegates rootviewController du style de présentation, il va également supprimer les animations de transition pour n'importe quel point de vue présenté à partir de ce point.
Ma solution était de retour le AppDelegates rootViewController la présentation de style par défaut à chaque fois que le viewcontroller est fermé que j'avais besoin de l'arrière-plan transparent sur
J'ai un bouton qui rejette la presentedViewController, que j'ai également définir le style de présentation de la rootViewController par défaut à l'aide de:
J'espère que ça aide quelqu'un d'autre se perplexe sur ce problème.