0

Je fais une application tvOS en UIStorybord. Je veux faire un flou de mon UIViewcontroller actuel basé sur le précédent UIViewController dans la pile de navigation. J'utilise la classe UIVisualEffectView pour cela. J'ai donc mon FirstViewController, j'ai ajouté UIImageView sur cela. Sur le UIViewController suivant (ce VC sera poussé au-dessus de mon FirstViewController) j'ai ajouté UIVisualEffectView sur self.view dans le storyboard, puis ajouté un UIButton à l'intérieur de la propriété vue de UIVisualEffectView, mais je ne reçois aucun effet de flou.Flou VC actuel avec Vue précédente dans la navigation Pile

Je n'ai écrit aucun code pour cela. Dois-je écrire le code pour cela? Je veux tout faire dans les storyboards car il est beaucoup plus facile d'ajouter des contraintes dans le storyboard au lieu de le faire dans le code.

Voici l'image du Storyboard Image

Toute aide sera très appréciée. Merci

+0

S'il vous plaît relire et éditer votre question, c'est presque pas compréhensible. Voulez-vous brouiller une vue, puis afficher la nouvelle sur le dessus? Que voulez-vous exactement flou et où et ce qui devrait être affiché sur le dessus? Cela n'a pas de sens de brouiller un VC si vous en affichez un nouveau, sauf que son contenu n'est pas en plein écran ou transparent ... Pouvez-vous poster une image de ce à quoi vous voulez que le résultat ressemble? –

+0

En fait, je veux obtenir un arrière-plan flou de mon précédent UIViewController dans la pile de navigation pour mon View Controller actuel. Idem lorsque vous balayez sur votre écran d'accueil iPhone et obtenez une recherche de spot. – Madu

+0

Alors s'il vous plaît clarifier votre question, je vais ajouter une réponse de toute façon –

Répondre

0

La transition de navigation par défaut déplace le précédent viewController vers la gauche, puis le supprime de la pile de vues.

Vous aurez besoin de votre viewController à mettre en œuvre pour UINavigationControllerDelegate protocole:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC; 

Maintenant, vous devrez implémenter votre objet animateur personnalisé qui implémente UIViewControllerAnimatedTransitioning et retourner une instance de cette classe dans la méthode déléguée UINavigationController mentionné ci-dessus.

Pour simplifier le processus, vous pouvez ajouter un UIVisualEffectView à votre second viewController. Vous placerez le contenu de vos vues dans la vue d'effet.

Dans votre animateur personnalisé, il vous suffit d'animer le viewController cible et de conserver l'emplacement du viewController source.