在选项卡之间切换时不重新加载数据

时间:2016-10-27 08:24:57

标签: ios swift uitableview uitabbarcontroller

我有一个def matchedJobs = Jenkins.instance.items.findAll{ job -> job.name =~ /test/ && job.getAssignedLabel() != null }.collect { job -> "${job.name}: ${job.getAssignedLabel().getNodes().collect({it.getNodeName()==""?"master":it.getNodeName()}).join(',')}\n" }.each { slaves -> println slaves } ,有两个标签。在每个选项卡中都有一个表,在UITabBarController中我加载数据并重新加载表:

viewWillAppear

但每次在表格之间切换时,显示的数据都是错误的。它会显示第二个选项卡数据,然后显示第一个确定,然后在两个视图中始终显示一个数据。

有什么想法吗?

更新:我的loadTasks()方法。

1 个答案:

答案 0 :(得分:1)

如果您“输入”标签,通常应调用viewWillAppear。 可能是ViewController未被取消初始化的情况=> ViewController仍在那里,因此不会调用viewWillAppear

您可能需要在loadTasks中使用弱自我:

func loadTasks(){
    let url = Api.GET_TASK_USER_MONTH
    Task.getTasks(url) { [weak self] tasks in
        if !tasks.isEmpty {
            for index in 0...tasks.count-1 {
               self?.tasks.append(tasks[index])
            }
        }

        self?.tableView.reloadData()
     }
}