192 votes

AVERTISSEMENT :-présentation des contrôleurs de vue sur les contrôleurs de vue détaché est déconseillée

Dans mon application, j’utilise la manette de navigation, par la suite à quelques avis que j’utilise Presentview contrôleur. Pour montrer l’image de zoom. Aussi je n’utilise pas une table de montage séquentiel, même ne pas à l’aide d’une plume unique...

J’obtiens cette erreur dans ios7 seulement. Il fonctionne très bien en ios6 et contrôleurs de vue Presenting antérieures sur les contrôleurs de vue détaché est déconseillé

211voto

cdescours Points 1016

Pour éviter la mise en garde dans une navigation de pousser, vous pouvez utiliser directement :

Et puis dans votre contrôleur de vue modal, quand tout est fini, vous pouvez simplement appeler :

``

64voto

Gagan Joshi Points 425

La raison de cet avertissement, je présente une vue contrôleur sur une petite vue qui n'est pas de taille plein la vue. Étant donné ci-dessous est l'image de mon projet. où sur cliquez sur les quatre options ci-dessus. L'utilisateur de naviguer à travers les différents childviewcontroller de vue.(il fonctionne comme tabViewcontroller). Mais le childviewcontroller contient de vue de petite taille. Donc, si nous présentons une vue de childviewcontroller il donne cet avertissement.

master detail view

Et pour éviter cela, vous pouvez présenter une vue sur childviewcontroller parent

  [self.parentViewController presentViewController:viewController animated:YES completion:nil];

15voto

Ester Ytterbrink Points 108

Je pense que le problème, c'est que vous n'avez pas une bonne vue contrôleur de la hiérarchie. Définir la rootviewcontroller de l'application et de montrer ensuite de nouveaux points de vue en les poussant ou en présentant les nouveaux contrôleurs de vue sur eux. Laissez chaque vue contrôleur de gestion de leur point de vue. Seul conteneur de vue des contrôleurs, comme le tabbarviewcontroller, ne devrait jamais ajouter un autre point de vue, les contrôleurs de vues de leurs propres points de vue. Lire le point de vue des contrôleurs guide de programmation pour en savoir plus sur la façon d'utiliser la vue des contrôleurs correctement. https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html

9voto

averem Points 51

J'ai presque le même problème. La raison en est que j'ai essayé de présenter "quelques" contrôleur sur l'autre, et après l'animation a été terminé, j'ai été paramètre présenté contrôleur en tant que root. Après cette opération, tous les autres contrôleurs de la présentation de me ramener à l'avertissement: "la Présentation de la vue des contrôleurs détaché de la vue des contrôleurs est découragé". Et je résoudre cet avertissement juste les paramètres de "certains" contrôleur en tant que root sans aucune présentation à la commencer.

Supprimé:

[[self rootController] presentViewController:controller animated:YES completion:^{

       [self window].rootViewController = controller;

       [[self window] makeKeyAndVisible];}];

Juste faire en tant que root sans aucune présentation:

 [[self window] setRootViewController:controller];

7voto

Gagan Joshi Points 425

Une des solutions à cela est que si vous avez childviewcontroller donc vous simplement presentviewcontroller sur son parent de donnée

Et pour les faire disparaître, utilisez le même contrôleur dismissview.

Il s’agit de œuvres de solution parfaite pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X