7
votes

"Application a essayé de présenter des contrôleurs de visualisations divisées modernes"

J'essaie toujours de trouver une solution à ce qui est théoriquement une tâche très simple et qui va d'un uiviewontroller à un contrôleur de visualisation scindé. (Pourquoi la pomme a-t-elle rendu si difficile).

Je suis à une scène où je mets maintenant la SplitViewController dans son propre storyboard. Et lorsque l'utilisateur sélectionne un bouton sur le contrôleur UIView unique, j'appelle le code suivant: xxx

donc je veux charger le storyboard avec le contrôleur SPLASTVIEW. Mais cela se bloque également avec "Application essayé de présenter des contrôleurs de visualisation divisaires modallellement"

Je n'ai spécifié aucune action "modale" dans le code.

existe-t-il une solution pour comment faire Ceci?


0 commentaires

5 Réponses :


3
votes

Le UisplitViewController doit toujours être le contrôleur de vue racine et ne peut pas être présenté de manière modale. Voir Apple Docs , qui dit:

Un contrôleur de visualisation split doit toujours être la racine de toute interface que vous créer. En d'autres termes, vous devez toujours installer la vue depuis un Objet UisplitViewController en tant que vue racine de votre application la fenêtre. Les vitres de votre interface de vision de la scission peuvent alors contenir Contrôleurs de navigation, contrôleurs à barres d'onglets ou tout autre type de vue Contrôleur Vous devez implémenter votre interface. Vue partagé Les contrôleurs ne peuvent pas être présentés de manière modale.


5 commentaires

Je peux intégrer une scissionViewController dans un TabviewController et Segue dans le TabviewController. Pourquoi Apple fait-il une si grosse affaire à ce sujet?


Je ne sais pas, mais ce sont les gars qui ont mis en œuvre tout ce genre de choses ... Si vous ne suivez pas leurs conseils et règles, vous obtiendrez plus tôt ou tard dans des ennuis.


Apple ou quiconque offre-t-il un motif ou a une idée de la manière de présenter des vues avant d'arriver à la vue split? IE Login est un scénario assez courant. Comment présenter une vue de connexion régulière et une transition sur le contrôleur de visualisation scindée une fois connecté? Encore une fois si Apple veut être un contrôleur de visualisation root d'application, probablement pas une bonne idée de violer cela ou de la solvabilité.


Ce n'est plus vrai depuis iOS 8.


Celles-ci ne sont pas vraies même iOS7 ,. Vous pouvez présenter une vision de Splity Model, mais vous devez effectuer la racine racolaire SPLIDVIEW dans Ewakefromnib spécifiquement dans l'IOS7, comme indique Alex. Dans iOS 8 Pas besoin.



2
votes

Vous pouvez utiliser une section SplitViewController comme une vue sur un TabviewController. Toutefois, une section SplitViewController ne peut pas être un contrôleur modal dans le sens traditionnel. Pour passer à une section SplitViewController à partir d'un UIViewController, utilisez le code comme celui-ci: xxx

qui transigea entre les contrôleurs. Vous pouvez modifier le type d'animation en fonction de votre objectif. Ceci est défini avec le paramètre Options; présentant actuellement UIViewanimationOptionTransitionFlipfromright.


2 commentaires

La transition d'animation n'a pas pris effet pour moi du tout. Y a-t-il une raison pour laquelle vous définissez le rootvc sur le contrôleur de vue cible, puis retournez à la source avant d'exécuter le bloc?


NEWLIND, je suis arrivé à travailler en utilisant ceci donc: Stackoverflow.com/Questtions/8053832/...



0
votes

Si vous avez créé uisplitViewController dans un storyboard, et lorsque vous avez ajouté la vue principale avant la vue Split, vous pouvez utiliser exécuterSegueVithIdentifier pour déclencher un jeu entre la vue principale et Split. Pour résoudre le bogue dans la légende, vous devez remplacer une méthode dans votre uisplitViewController xxx


1 commentaires

Y a-t-il un moyen de le faire à Obj-C?



0
votes

Oui, il est possible de passer de UIView à UisplitView. Vous devez utiliser une SEGUE personnalisée.

Lire ce lien (traduisez-le du japonais)

UIViewController à UisplitViewController


0 commentaires

1
votes

Celui-ci est une question assez ancienne. Cependant, j'ai eu travaillé avec le code ci-dessous dans mon application et je pense que c'est une meilleure solution.

[self addChildViewController:<# Your Split VC #>];
[<# Your Split VC #>.view willMoveToSuperview:self.view];
<# Your Split VC #>.view.frame = self.view.frame;
[self.view addSubview:<# Your Split VC #>.view];
[<# Your Split VC #>.view didMoveToSuperview];


0 commentaires