web-dev-qa-db-fra.com

Basculer entre les storyboards à l'aide de Swift

J'ai un storyboard qui devient trop volumineux dans mon projet Xcode et ralentit mon ordinateur. Comment passer par programmation (ou manuellement à l'aide du storyboard) de l'une de mes vues dans le storyboard actuel à l'aide d'un bouton pour passer à une vue sur le nouveau storyboard?

Semi-nouveau avec Xcode donc le plus simple sera le mieux. Merci!

25
Seth

Vous pouvez le faire par programme de cette façon:

Swift 3 +

let storyboard = UIStoryboard(name: "StoryboardName", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ViewControllerID") as UIViewController
present(vc, animated: true, completion: nil)

Plus ancien

let storyboard = UIStoryboard(name: "myStoryboardName", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("nextViewController") as UIViewController
presentViewController(vc, animated: true, completion: nil) 

Dans Trier, vous pouvez le faire comme:

presentViewController( UIStoryboard(name: "myStoryboardName", bundle: nil).instantiateViewControllerWithIdentifier("nextViewController") as UIViewController, animated: true, completion: nil)

Et n'oubliez pas de donner l'ID à votre nextViewController.

Pour plus d'informations, reportez-vous à THIS .

44
Dharmesh

0 lignes de code

Utilisation d'Interface Builder

  1. Ajouter une référence de storyboard au storyboard source
    Storyboard Reference
  2. Contrôle-Glisser du UIButton à celui Référence du Storyboard
    enter image description here
  3. Dans l'inspecteur Attributs de l'espace réservé Référence du storyboard , spécifiez la destination Storyboard et éventuellement la destination ID de référence de la cible UIViewController et Bundle .
    enter image description here

Image complète

enter image description here

37
SwiftArchitect

Solution Swift 3:

present( UIStoryboard(name: "CreateOrder", bundle: nil).instantiateViewController(withIdentifier: "firstOrderViewController") as UIViewController, animated: true, completion: nil)
5
Lunarchaos42