web-dev-qa-db-fra.com

Quelqu'un sait-il à quoi sert la nouvelle icône Quitter lors de la modification de storyboards à l'aide de Xcode 4.5?

Un clic droit sur l'icône Quitter produit une fenêtre vide. Impossible de faire Ctrl-glisser une connexion vers des éléments IB ou des fichiers source correspondants. Les documents ne donnent aucun amour. N'apparaît pas dans les fichiers nib, seulement les storyboards. Mon hypothèse est que c'est un corollaire aux séquences, mais je ne vois pas de nouvelles méthodes pour le sauvegarder. N'importe qui?

99
rsswtmr

Il y a beaucoup d'informations dans la vidéo de la WWDC "Session 407 - Adopter des storyboards dans votre application."

Supposons que deux contrôleurs de vue soient liés par une séquence. Implémentez l'action de sortie suivante sur le premier contrôleur de vue:

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

Ensuite, sur la scène Storyboard pour le deuxième contrôleur de vue, faites un Ctrl-glisser depuis un élément d'interface utilisateur, tel qu'un bouton, jusqu'à l'icône de sortie au bas de ce contrôleur de vue. Le done: l'action que vous avez ajoutée au code du premier contrôleur apparaîtra en option. Maintenant, l'activation du bouton que vous avez glissé avec la touche Ctrl sur l'icône de sortie réapparaîtra sur le premier contrôleur de vue et conservera son état d'origine (c'est-à-dire des éléments d'interface utilisateur tels que la saisie de texte supposé toujours intact).

104
Cal S

J'ai eu du mal à suivre la réponse acceptée alors voici plus de détails.

Compte tenu de la photo ci-dessous sur le contrôleur de vue C, vous pouvez "quitter" vers n'importe quel contrôleur de vue dans le chemin de transition.

enter image description here

ViewController A vous pouvez écrire:

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController B vous pouvez écrire:

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController C vous contrôlez le glisser depuis le bouton "back" vers l'option de sortie verte et sélectionnez back: ViewController C vous contrôlez le glisser depuis le bouton "done" vers l'option de sortie verte et sélectionnez done: enter image description here

Remarque: Même si les méthodes se trouvent sur d'autres contrôleurs de vue, elles apparaissent pour le ViewController C 'exit. Le contrôle en faisant glisser et en sélectionnant une méthode définit le ViewController vers lequel se détendre.

218
Eric

En plus de Eric , voici comment cela fonctionne avec Swift :

La fonction que vous ajoutez au contrôleur de destination ressemble à:

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
14
jboi