ios - 如何使用swift更新tableview中的数据?

标签 ios swift uitableview uitabbarcontroller

目前我有 3 个 swift 文件:ManualViewController、AutoViewController、Main

ManualViewController 是带有表格 View 的 UIViewController。 AutoViewController 是一个带有几个按钮的 UIViewController。 Main 只是一个包含 TableView 所有数据的 swift 文件。

ManualViewController 和 AutoViewController 是使用 TabBarController 控制的。

当我运行应用程序时,在 Main.swift 中找到的初始内容被加载到 TableView 中。当我转到下一个 View 即 AutoViewController 并单击按钮更改 Main.swift 中的数据时,数据会发生变化。问题是当我切换回 ManualViewController 时,表格仍然包含旧数据而不是更新的数据。

我也试过这个:

override func viewWillAppear(animated: Bool) 
{
    super.viewWillAppear(false)
    self.tableView.reloadData()
}

还是不行。

最佳答案

您可以使用 NSNotificationCenter 从另一个 View 更新您的 tableView

你的 -addObserver: 声明在你的 tableView Controller 中的 viewDidLoad 方法中必须是这样的:

override func viewDidLoad() {
    super.viewDidLoad()
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshTable:", name: "refresh", object: nil)
}

你的这个 addObserver 函数将像:

 func refreshTable(notification: NSNotification) {

    println("Received Notification")
    self.tableView.reloadData()
}

现在,当您导航到您的 tableView Controller 时,您可以像这样发布通知:

NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil, userInfo: nil)

检查 THIS示例项目以获取更多信息。

希望对您有所帮助。

关于ios - 如何使用swift更新tableview中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043504/

相关文章:

ios - UIAlertViewController.actionSheet 上每个 Action 的 Swift 不同颜色

iOS swift UICollectionView 在滚动超过第一个屏幕后失去单元格约束

ios - 如何获取iPhone中图库中选择的图像的路径?

xcode - 如何继续调用函数直到它返回与以前不同的输出?

ios - TableView 单元格中的 NSAttributedString - 有时显示为纯文本

ios - iOS 企业应用程序开发程序是否可以用于向其他公司分发应用程序而不是通过应用程序商店?

ios - 应用程序运行时不显示自定义原型(prototype)单元格

ios - 为什么这段代码每秒运行 1000 次时运行速度这么慢?

iphone - 如何阻止自定义 UITableViewCell 背景图像可拉伸(stretch)?

iOS 启动事件指示器只有 1 行