2017-02-05 2 views
0

Je suis en train de transmettre des données dans mon UIPageViewController lors de sa création, car elle dépend d'une vue précédente, mais je regarde les documents d'Apple et il y ainitialisation uipageviewcontroller avec des données

init?(coder:NSCoder) 

mais je ne suis pas sûr que c'est utile.

Je me demandais s'il y avait un moyen de transmettre des données à droite UIPageViewController quand il est instancié de sorte que le UIPageViewController est rempli avec les données transmises dans

Edit: Juste un dictionnaire comme

["product 1" : "product description", 
"product 2" : "product description", 
] 

Il Il sera ensuite passé pour peupler les vues

+0

Votre question est ambiguë. Quel genre de données? Comment souhaitez-vous l'afficher? – Pierce

+1

'UIPageViewController' est un contrôleur de conteneur normalement utilisé tel quel pour afficher d'autres contrôleurs de vue en tant que contenu. Vous pouvez créer votre propre sous-classe de 'UIPageViewController' (iOS 6 et versions ultérieures) qui vous permettra de créer une méthode' init' pour définir vos données. –

Répondre

0

Peut-être que ce n'est pas ce que vous voulez, vous pouvez acheter des données entre les contrôleurs de vue de plusieurs façons. C'est l'un d'eux.

Donc, dans le premier contrôleur de vue que vous pourriez faire quelque chose comme ceci:

let SecondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! ViewController 
    SecondViewController.String = "Some string here" 
    SecondViewController.Int = 5 
    self.navigationController?.pushViewController(SecondViewController, animated: true) 

Et puis dans votre deuxième contrôleur de vue, vous pouvez recevoir des données par:

var String:String? 
    var Int:Int? 

Je ne sais pas si vous pourrait passer tout dictionnaire comme ça, mais je pense, ça va marcher! Alors essayez-le et espérez que ça aide!

Consultez également ce tutoriel: