121 votes

Adaptative segue dans la table de montage séquentiel 6 Xcode. Push est obsolète ?

Xcode 6 interface builder a par défaut la case à cocher "utiliser les classes de taille". Il rend la vue adaptative. enter image description here

Lorsque je tente de faire des enchaînements entre les 2 points de vue dans mon storyboard j'ai de nouvelles options: enter image description here

au lieu de cela:

enter image description here

Maintenant, nous avons "show" et "présent modal" au lieu de "push" et "modal". L'ancien options sont marqué comme obsolète. J'ai choisi "afficher" option, parce que dans segue paramètres appelée "afficher (par exemple, pousser)

enter image description here

Mais il ne fait pas pousser. Segue animation ressemble à glisser à partir du bas (modale) et la barre de navigation disparaît.

La Question est: Comment puis-je faire de "montrer" le travail comme push? Est-il possible ou dois-je utiliser "push (obsolète)" à la place? Où puis-je trouver toutes les informations sur de nouveaux types de segue? La seule chose que j'ai trouvé dans iOS8 développeur de la bibliothèque est Storyboards Vous Aider à la Conception de Votre Interface Utilisateur , mais il n'y a aucune informations à propos de "montrer" segue.

Mise à JOUR

J'ai essayé de créer un nouveau projet et de "montrer" est vraiment fonctionne comme "push". Je pense que le problème dans mon projet peut-être parce que je réutilisation manette de navigation avec ce code, mais je ne sais pas comment le résoudre.

if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] ) {
    SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue;

    swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {

        UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
        [navController setViewControllers: @[dvc] animated: NO ];
        [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
    };

}

Après cela, j'ai essayer de pousser NewViewController après MainViewController enter image description here

Mise à JOUR 2:

Je semble être seulement iOS 7, iOS 7.1 problème.

96voto

Spencer Hall Points 894

Oui, utiliser le "Show" au lieu de "Pousser"

Comment puis-je faire de "montrer" le travail comme push? Est-il possible ou dois-je utiliser "push (depricated)" à la place?

Il se doit; il le fait pour moi. J'utilise Xcode 6 bêta 2 et pour tester, j'ai utilisé le seul modèle de vue (l'appel de la pré faites-vue-contrôleur au bureau de l'IB ‘VC_A'). J'ai ensuite ajouté un autre point de vue contrôleur (‘VC_B'). J'ai ensuite ajouté un bouton sur VC_A pour montrer VC_B et l'autre à partir de VC_B retour à VC_A. Quand j'ajoute une manette de navigation comme la vue initiale du contrôleur dans le storyboard et faire VC_A la rootViewController, à la fois "push" et "show", ont le même effet. Si je n'ai pas une première manette de navigation et j'utilise "show", j'obtiens ce que vous avez décrit dans la VC_B fait un glisser vers le haut à partir du bas. Si j'essaie de le "pousser" je reçois un crash depuis pour faire des pompes, j'ai dû la manette de navigation. Il semblerait donc que le "show" se faire pousser dans le cas où une manette de navigation est fourni et faire un cadeau avec un modal style de transition si une manette de navigation n'est pas présent.

Où puis-je trouver toutes les informations sur de nouveaux types de segue?

J'ai donc trouvé des informations dans le "Quoi de neuf dans Interface Builder' session ici. Si vous regardez les diapositives, vous verrez une diapositive (41) mentionner le changement. Lorsque vous regardez cette session vidéo, vous pouvez passer directement à la minute 38:00 où ils commencent à en parler adaptative enchaîne. Elles expliquent que le "show" adaptative segue, par exemple, prend le contexte en compte au moment de décider de la façon de faire la présentation d'un nouveau-vue-contrôleur.

32voto

alondono Points 83

Il y a déjà accepté de répondre, mais je voulais donner un peu plus d'informations, éventuellement, des informations qui n'étaient pas disponibles auparavant.

Comme il a été mentionné avant le "push" et "modal" enchaîne étaient obsolètes et ont été remplacés par les "montrer" et "présent modal", respectivement. Selon la documentation d'Apple, la nouvelle enchaîne ont été divisés en enchaîne qui s'adaptent à la taille des classes. Les plus âgés ne devraient être utilisés pour soutenir iOS versions antérieures à iOS 8.

Le document en suivant ce lien explique que et la description de tous les enchaîne, anciens et nouveaux.

L'ajout d'une Transition Entre les Scènes dans un Storyboard

Dans le cas où l'URL des changements dans l'avenir, c'est l'explication donnée pour chaque nouvelle séquence:

Montrer

Présenter le contenu dans le détail ou master domaine en fonction du contenu de l'écran. Si l'application est l'affichage d'un maître et de la vue de détail, le contenu est poussé sur la zone de détail. Si l'application est uniquement afficher le maître ou le détail, le contenu est poussé sur le dessus de la vue actuelle de contrôleur de la pile.

Montrer Les Détails

Présenter le contenu dans la zone de détail. Si l'application est l'affichage d'un maître et de la vue de détail, le nouveau contenu remplace l'actuelle détail. Si l'application est uniquement afficher le maître ou le détail, le contenu remplace le haut de la vue-contrôleur de la pile.

Présent Modal

Présenter le contenu modal. Il ya des options pour choisir un style de présentation (UIModalPresentationStyle) et un style de transition (UIModalTransitionStyle).

Présent comme Liste

Présenter le contenu sous forme de liste ancré à une vue existante. Il y a une option pour spécifier les directions possibles de la flèche, comme indiqué sur l'une des arêtes de la liste de la vue (UIPopoverArrowDirection). Il y a également une option pour spécifier la vue d'ancrage.

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