102 votes

Xcode 4.5 Storyboard 'Exit'

Je viens d'installer Xcode 4.5 pour le support iOS6 et j'ai vu une nouvelle icône appelée 'Exit' dans mon Storyboard, répertoriée sous mes contrôleurs de vue avec 'First Responder', etc. Une petite icône verte intitulée 'Exit'.

Je peux trouver quelque chose à ce sujet ni savoir comment l'utiliser.

Quelqu'un sait quelque chose à ce sujet, comment ça marche, à quoi ça sert?

72voto

Alladinian Points 16627

Ceci est appelé un "Détendez-vous Segue". Malheureusement il n'y a pas de documentation pour ce jusqu'à présent, sauf une brève mention sur XCode 4.5 liste des nouvelles fonctionnalités que les états:

Détendez-vous enchaîne peut permettre la transition vers les instances existantes de scènes dans un storyboard

La bonne nouvelle, c'est qu'il y a une session à partir de la WWDC 2012 expliquant ces créatures (entre autres choses).

Vous pouvez simplement vous connecter à Apple iOS Dev Center avec votre compte de développeur de détails, et puis aller à la WWDC 2012 page vidéos et de regarder "l'Adoption de Storyboard dans votre Application" (c'est le cinquième depuis le haut) de La discussion de se détendre enchaîne commence à l'heure 37:20.


Mise à jour: Voici quelques infos sur le sujet de la documentation d'Apple

Un espace réservé à l'objet nommé à la Sortie pour se détendre seques. Par défaut, lorsque un utilisateur ferme une enfant de la scène, le point de vue du contrôleur de la scène se déroule (ou retourne) pour le parent de la scène-c'est la scène qui à l'origine, la transition vers l'enfant de la scène. Cependant, la Sortie de l'objet permet une vue contrôleur pour se détendre à l'arbitraire de la scène.

(À partir de iOS6 docset > Général > mise en route)

Et voici un bel exemple de la façon dont vous pouvez mettre en œuvre un


Une Autre Mise À Jour:

Voici une note technique d'Apple à ce sujet.

11voto

ArtOfWarfare Points 2345

Imaginez que vous avez une séquence de points de vue dans votre scénario:

A -> ... -> Z

Vous souhaitez avoir un bouton sur la vue Z qui permet à l'utilisateur d'aller tout le chemin du retour à l' A.

Donc, ce que vous devez faire est de donner le point de vue que vous souhaitez sauvegarder tous le moyen de sortir, dans ce cas, A, une méthode d'instance qui est marqué comme un IBAction et prend un seul paramètre de type UIStoryboardSegue *. Le nom de la méthode et de la variable n'a pas d'importance. Ce que vous faites dans la mise en œuvre n'a pas d'importance, que ce soit. Voici un exemple:

En A'Interface ( Zs'):

- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;

En A's la mise en Œuvre (pas de Zs'):

- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
    // Only "implemented" to satisfy a respondsToSelector: search.
    // You can actually implement more stuff here, if you want, IE, if
    // you need to reach out to a server to mention that this screen was
    // returned to from a later screen.
}

Maintenant, à l'intérieur de votre plan de montage, de contrôle faites glisser un élément sur Z (c'est à dire, un bouton annuler) Zs' Exit. Il analyse à travers tous les points de vue plus haut dans la hiérarchie vue qui ont un IBAction qui n'accepte qu'un seul UIStoryboardSegue * d'une action et d'en faire la liste pour vous de choisir.

J'espère que cela a été plus simple et utile que les réponses. J'ai trouvé que ce lien a été particulièrement utile, donc si il y a un détail que vous êtes encore un peu flou sur après la lecture de ma réponse, peut-être cela peut vous aider (j'ai essayé de juste condenser toutes les infos utiles de ce long article dans une réponse courte): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html

8voto

Marwyetah Points 91

Une bonne explication ainsi qu'un exemple de déroulement des discussions peuvent être trouvés ici: http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html

4voto

matt Points 60113

Voir aussi Ne peut pas se Connecter Storyboard Détendez-vous des Enchaînements qui précise les exigences pour apporter de l'icône de la Sortie à la vie. Vous devez avoir, plus haut dans la vue contrôleur de hiérarchie, une méthode qui est:

  1. Marqué comme IBAction

  2. Prend un paramètre qui est une UIStoryboardSegue*

Si ces deux conditions sont remplies, l'icône de la Sortie verront et vous permettent de vous connecter grâce à elle par le contrôle-les glisser à partir d'un bouton dans la même vue contrôleur.

J'ai aussi maintenant, posté le monde de l'exemple le plus simple ici:

https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (fixe 12 juillet 2013)

Cela montre comment trivial, c'est maintenant l'enchaîner à et de a présenté view controller, par opposition à tout le travail que vous avez eu à le faire auparavant dans la main afin d'info en arrière (les trucs dans le modèle avec un délégué et d'un protocole, qui peuvent maintenant être supprimés).

3voto

Jack Bellis Points 151

Juste l'ajout d'une légère subtilité à la définition des exigences qui pourraient vous aider. Ceci est basé sur l'expérimentation dans Xcode 4.6. J'ai trouvé que c'est précisément et uniquement le déclarant(!) de la méthode qui permet le contrôle souhaité glisser la réponse de Xcode. Voici ce que j'ai trouvé pour être à l'intégralité des exigences:

  • Marqué comme IBAction
  • Prend un paramètre qui est une UIStoryboardSegue*
  • Vous devez avoir une action déclaré (mais pas nécessairement mis en œuvre [sens d'une méthode dans l' .M section mise en œuvre]).
  • Il peut être dans n'importe quelle classe de l'interface de la déclaration, la section de l'interface d'un .M, à l'exception de l'appdelegate classe. (Je n'ai pas vu la dépendance de sa position dans le contrôleur de la hiérarchie. Vous pouvez ajouter n'importe quel ancien fichier et le système semble regrouper toutes les méthodes qui ont l' UIStoryboardSegue de paramètre et de les afficher sur la Sortie de l'icône du menu). Notez que le contrôle glisser le menu va même vous montrer votre méthode si la méthode est dans la classe de la scène de la manipulation dans le storyboard de l'éditeur, mais il apparaîtra sans un colon et ne semble pas déclencher une action lors de l'exécution.

Exemple: -(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;

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