Décompressez Segue dans Xcode 6.1.1 avec storyboard

J'ai lu que segue se dérouler sont buggués dans Xcode 6. J'utilise Xcode 6.1.1 et j'utilise swift.

J'utilise le button "Retour" qui est mis par le controller de navigation. Ainsi, je ne peux pas faire glisser vers l'icône de sortie. De plus, je ne peux pas faire glisser de l'icône viewController vers l'icône de sortie non plus.

Est-ce un bug? Ou bien il me manque quelques connaissances fondamentales sur la façon d'utiliser Segue. Comment puis-je régler les segues de se dérouler du storyboard?

J'ai réussi. Si vous présentez à partir d'un controller de navigation ou TabBarController (vous n'êtes pas sûr du TabBarController), vous devez sous-classr le controller de navigation et append le segue de déroulement à cela. Dans le storyboard, n'oubliez pas de changer la class de votre controller de navigation. Ma hiérarchie d'affichage était NavController -> TableController -> DetailController. Après avoir ajouté la méthode à la class NavBar personnalisée, ajoutez-la au VC que vous voulez RETOURNER. Vous serez alors en mesure de faire un Ctrl-glisser pour quitter. Je considère cela comme un bug, car une fois qu'il est connecté, j'ai été capable de supprimer la sous-class et de revenir au stock NavigationController et cela a fonctionné.

Je veux fournir une réponse détaillée:

Pour effectuer un segue de déroulement, allez au controller de vue que vous voulez connecter et ajoutez la fonction suivante; (le nom peut changer bien sûr)

 @IBAction func unwindToMainMenu(segue: UIStoryboardSegue) { } 

Une fois que vous aurez ajouté cette fonction, vous pourrez voir cette fonction de déroulement depuis n'importe quel controller de vue de votre storyboard. Faites un clic droit sur l'icône de sortie en haut de tout controller de vue. icône de sortie clic droit

Si vous voulez effectuer un déroulement avec un button, vous pouvez le faire glisser depuis le button pour quitter l'icône et choisir votre fonction unwindSegue . Terminé!

Se détendre avec le bouton

Si vous voulez effectuer un déroutement par programmation, puis faites glisser cntrl + de l'icône viewController vers l'icône de sortie et choisissez la fonction de déroulement.

entrez la description de l'image ici

Ensuite, ouvrez le plan du document et click le programme déroulant.

entrez la description de l'image ici

Allez à l'inspecteur d'attributes dans les utilitaires et donnez un identifiant à votre session de déroulement.

entrez la description de l'image ici

Enfin, appelez la fonction performSegueWithIdentifier comme suit:

 self.performSegueWithIdentifier("goToMainMenu", sender: self) 

J'espère que cela pourra aider!

J'ai commencé à travailler sur Xcode 6.2. Mon cas est ViewController A présentant B modalement. Détendez les étapes de configuration ci-dessous:

  1. En A, écris une IBAction

     -(IBAction)unwindFromB:(UIStoryboardSegue *) unwindSegue { ViewControllerB *vc = [unwindSegue sourceViewController]; // get whatever data you want to pass back from B } 
  2. Dans le story-board, trouvez B et faites un clic droit sur le button 'Exit' en haut, puis le menu 'Presenting Segue' affichera unwindFromB que vous venez de créer dans A

  3. Cliquez sur le petit signe '+' à droite et reliez-le à B, select 'manuel'

  4. N'oubliez pas de définir l'identifiant de la séquence de déroulement si vous avez besoin de l'appeler par programmation.

J'ai trouvé que je ne pouvais pas faire glisser de l'UITableViewCell à l'object Exit sur le View Controller sur le Storyboard.

La solution consistait à append d' abord une IBAction appropriée dans le code. Une fois qu'un IBAction existe, la cible de traînée s'allume.

 -(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue { }