【问题标题】:Updating TableView within containerview在 containerview 中更新 TableView
【发布时间】:2017-04-14 23:45:57
【问题描述】:

我有我的UIViewController,这是一个人的个人资料页面,它显示了他们的姓名和照片。在那个UIViewController 中,我有一个UIContainerView,它显示一个静态UITableView。加载配置文件页面时,我在更新表格的单元格时遇到了一些问题。这是我的故事板:

我在UIViewController 中尝试了以下操作。

我为我的UIView 创建了一个出口并将人员对象传递给它。

在我的UIView 中,我调用了segue 将对象传递给UITableViewController,然后我要从那里更新一些标签。

func prepareForSegue(segue: UIStoryboardSegue!, sender: Any?){
    if segue.identifier == "containerSegue"{
        let statsTable = segue.destination as! CollectionTableViewController
        statsTable.currentPerson = currentPerson
    }
}

我的 Segue 从未被调用过。我已将其移至主要的UIViewController,以防它应该从那里被调用,但又不会被调用。这种方法我做错了什么?

【问题讨论】:

  • 并添加 statsTable.tableView.reloadData() 也。
  • @DeepakKumar,但是从来没有调用 segue 来传递值?
  • 在底部检查我的答案。 Segue 方法永远不会被调用,因为 tableviewcontroller 被添加为 childviewcontroller

标签: ios swift3


【解决方案1】:

假设您已将 Segue Identifier 设置为“containerSegue”,您应该在“Stats”视图控制器中获取它。

您使用的是 Swift 3 吗?有可能你只是 func 定义错误:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "containerSegue" {
        let statsTable = segue.destination as! CollectionTableViewController
        statsTable.currentPerson = currentPerson
    }
}

应该工作。

【讨论】:

  • 是的,我使用的是 Swift3,segue 应该在我的 UIView 中,而不是我的 UIViewController?
  • 它应该在 ViewController 类中......在您发布的图片中,我假设标记为“Stats”的 View Controller 属于“StatsViewController.swift”类(或类似的东西)。
猜你喜欢
  • 2019-09-09
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2012-08-04
  • 2014-02-07
相关资源
最近更新 更多