cómo actualizar los datos en tableview (Swift)

Tengo dos files Swift: NotificationsViewController y ViewController. El primer Array se actualiza en el ViewContoller cuando se toca un button. Pude imprimir los datos actualizados. Sin embargo, cuando cambio de nuevo a NotificationsViewController, tableview no se actualiza cuando lo presiono para actualizar.

NotificationsViewController:

import Foundation import UIKit var firstArray : [String] = ["123","1234"] class NotificationsViewController: UITableViewController { var refresher: UIRefreshControl! var data: [[String]] = [firstArray, ["4","5"]] func refresh(){ print("refreshed") self.tableView.reloadData() self.refresher.endRefreshing() } override func viewDidLoad() { refresher = UIRefreshControl() refresher.attributedTitle = NSAttributedString(string: "pull to refresh") refresher.addTarget(self, action: #selector(NotificationsViewController.refresh), forControlEvents: UIControlEvents.ValueChanged) self.tableView.addSubview(refresher) refresh() super.viewDidLoad() self.tableView.editing = true } override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return data.count } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data[section].count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell: UITableViewCell = UITableViewCell(style: .Subtitle, reuseIdentifier: "tableCell") cell.textLabel?.text = data[indexPath.section][indexPath.row] return cell } override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == .Delete { data[indexPath.section].removeAtIndex(indexPath.row) tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) } } } 

ViewController:

 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func button(sender: AnyObject) { firstArray.append("522") print(firstArray) } } 

Probé esto pero tampoco funcionó.

Actualizado :

¿Cómo puedo actualizar un valor de cell.detailTextLabel? .text que se basa en otra matriz?

Gracias de antemano

Un problema:

Después de actualizar la primera matriz. También necesita actualizar los datos. No se actualiza automáticamente. para que tu código se vea como

 func refresh(){ data = [firstArray, ["4","5"]] print("refreshed") self.tableView.reloadData() self.refresher.endRefreshing() } 

Realimentación:

En lugar de usar una variable fuera de las classs, es mejor usar una class singleton. Se parece a esto:

 class Singleton: NSObject { static let shanetworkingInstance = Singleton() var firstArray = [] } 

Puede actualizar / recuperar la matriz como

 Singleton.shanetworkingInstance.firstArray