2017-09-10 1 views
-1

Je suis très nouveau à Swift et essayant d'apprendre pendant que j'écris ma première application simple. J'ai un storyboard avec un sélecteur personnalisé sur le ViewController principal et j'ai besoin de peupler les cellules de table dans un second TableViewController avec des sélections de sélection du premier. Fondamentalement, l'utilisateur fera une sélection à partir d'un sélecteur dans la première vue, puis cliquez sur un bouton "Ajouter" qui prendra leur sélection et l'ajouter à la table dans la deuxième vue. Ils peuvent ensuite suivre le même processus pour des sélections supplémentaires. Je pourrais utiliser une liste ou quelque chose d'autre pour cela aussi je ne suis pas marié à l'aide d'une table.Comment envoyer les données d'un sélecteur personnalisé à une cellule de table dans un second contrôleur de table?

Quelqu'un peut-il me guider dans la bonne direction? S'il vous plaît gardez à l'esprit que je suis nouveau et j'essaie d'apprendre ici. Je n'arrive pas à trouver quelque chose qui puisse m'aider. Merci!

+0

Afficher le code que vous avez déjà a essayé. – PGDev

+0

Et qu'avez-vous essayé jusqu'ici? –

+0

A partir de maintenant, j'ai seulement essayé ce que PGDev posté ci-dessous. Encore une fois, je suis tout nouveau à Swift. Je suis en train de passer au peigne fin les articles que rmaddy a référencés ci-dessus et je posterai la solution dès que je l'aurai. Merci pour les réponses jusqu'à présent. – gwpeaks

Répondre

0

Il vous suffit de récupérer les données de la ligne sélectionnée dans votre commande UIPickerView et l'envoyer à l'UITableViewController, à savoir

1. et données transitant semblables dans

var tableController: TableViewController? 

@IBAction func addItem(sender: UIButton) 
{ 
    if let tableController = self.tableController 
    { 
     tableController.items.append(items[self.picker.selectedRow(inComponent: 0)]) 
     tableController.tableView.reloadData() 
     self.navigationController?.pushViewController(tableController, animated: true) 
    } 
} 

2. UITableViewController

class TableViewController: UITableViewController 
{ 
    var items = [String]() 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     return items.count 
    } 

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
     cell.textLabel?.text = items[indexPath.row] 
     return cell 
    } 
}