如何在TableView中更新数据(Swift)

亚娜

我有两个Swift文件:NotificationsViewController和ViewController。轻按按钮时,将在ViewContoller中更新firstArray。我能够打印更新的数据。但是,当我切换回NotificationsViewController时,刷新时不会更新tableview。

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)

    }


}

我试过了,但是也没有用。

更新 :

如何更新基于另一个数组的cell.detailTextLabel?.text的值?

先感谢您

苏巴什

一期:

更新第一个数组之后。您也需要更新数据。它不会自动更新。所以你的代码看起来像

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

回馈:

与其在类之外使用变量,不如使用单例类。看起来像这样:

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

您可以像这样更新/检索数组

Singleton.sharedInstance.firstArray

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在swift中渐变tableview的背景

来自分类Dev

如何在Swift中从其他ViewController重新加载TableView中的数据

来自分类Dev

查询解析,如何在Swift中的tableView单元格中打印数据?

来自分类Dev

如何在TableView中显示Firebase数据?

来自分类Dev

如何在 TableView 中重新加载数据

来自分类Dev

在swift 3中加载所有数据时如何在tableview中隐藏刷新控件?

来自分类Dev

如何在Swift 2的TableView中显示特定图像

来自分类Dev

如何在Swift中向TableView添加默认文本

来自分类Dev

如何在Swift中获取TableView标识符

来自分类Dev

如何在Swift 3中使用jSON填充TableView

来自分类Dev

如何在动态 tableView Swift 中删除行

来自分类Dev

如何在Swift中更新MPNowPlayingInfoCenter?

来自分类Dev

如何在DetailsView上显示TableView中的数据

来自分类Dev

如何在javafx中接收tableView特定行的数据?

来自分类Dev

Swift:如何在没有情节提要的情况下在Container View中更新数据

来自分类Dev

如何在MERN堆栈中更新数据

来自分类Dev

如何在Laravel 5.8中更新数据

来自分类Dev

如何在UITableView中更新RSS数据?

来自分类Dev

如何在ISE中更新coe数据?

来自分类Dev

如何在php mysql中更新数据?

来自分类Dev

如何在laravel 5中更新数据?

来自分类Dev

如何在mongodb更新中设置数据

来自分类Dev

如何在Swift中从PLIST读取数据?

来自分类Dev

如何在Swift中从PLIST读取数据?

来自分类Dev

如何在Swift中处理JSON数据

来自分类Dev

如何在Swift中从AnyObject提取数据

来自分类Dev

如何在Swift中从NSMutableURLRequest获取数据?

来自分类Dev

如何在不影响 Swift 和 Firebase 中现有数据的情况下更新数据?

来自分类Dev

如何在调用 tableView 之前更新变量

Related 相关文章

热门标签

归档