2017-10-13 6 views
0

J'essaye de créer un programme rapide avec un ViewController principal, et un VC secondaire qui contrôle une fenêtre qui recouvre l'écran. Dans cette fenêtre, vous pouvez entrer les identifiants de connexion, qui s'afficheront dans un tableView dans la principale ViewController.Comment rafraîchir un ViewTable à partir d'un ViewController séparé

Jusqu'à présent, je suis en mesure d'enregistrer les valeurs entrées dans la VC secondaire aux données de base, mais je ne suis pas en mesure de reloadData() pour le tableView dans le premier VC, parce que cela ne peut pas voir la fonction reloadData() (ne doit pas être une fonction publique? Pas vraiment sûr, car je suis nouveau à Swift).

Quelqu'un pourrait-il m'aider à trouver la meilleure façon de procéder?

Code principal ViewController:

import UIKit 

class ViewController: UIViewController { 


    @IBOutlet weak var tableView: UITableView! 

    var account = [Account]() 
    @IBAction func onAddAccount(_ sender: Any) { 
     self.tableView.reloadData() 
     print("RELOADED") 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

    } 

    @IBAction func onBlank() { 
     self.tableView.reloadData() 
    } 
} 


extension ViewController: UITableViewDataSource { 
    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = UITableViewCell(style: .subtitle, reuseIdentifier: nil) 
     cell.textLabel?.text = account[indexPath.row].email 
     cell.detailTextLabel?.text = account[indexPath.row].password 
     return cell 
    } 
} 
+0

Est-ce parce que 'UITableViewDelegate' est manquant? – Amit

Répondre

0

Je suis moi-même relativement nouvelle rapide. Mais je pense que ce que vous cherchez est Delegate va dire au contrôleur principal que les données ont été mises à jour et ce qu'il a été mis à jour aussi. Il semble également que vous pourriez avoir besoin d'une source de données? Alors que vous pouvez mettre en œuvre l'architecture du modèle, vue, contrôleur.