展开Segue重新加载更新的表视图单元格

时间:2016-05-03 02:07:37

标签: swift uitableview

我的Table View有一个“添加”按钮,你点击添加按钮,一个新的视图控制器模态打开,你输入文本字段(名称,位置,评级等......),当你点击保存它会将您带到播放器配置文件页面,其中包含您在“添加视图控制器”中输入的所有信息。我还在播放器配置文件页面上有一个Unwind Segue,让您​​返回列出所有播放器的表格视图你补充说。我的问题是,当我点击退回到桌面视图的按钮时,它不会添加新的播放器.IE如果我的桌面视图中有3个玩家开始,我点击添加添加第四个,输入信息并点击保存并进入播放器配置文件页面,当我点击退出按钮时,表视图仍然列出3,而不是4.下面是我的展开代码......

@IBAction func unwindToRecipeList(segue: UIStoryboardSegue) {
    if let sourceViewController = segue.sourceViewController as? RecipeDetailViewController, recipe = sourceViewController.recipe {
        if let selectedIndexPath = tableView.indexPathForSelectedRow {
            recipes[selectedIndexPath.row] = recipe
            tableView.reloadRowsAtIndexPaths([selectedIndexPath], withRowAnimation: .None)
        } else {
            let newIndexPath = NSIndexPath(forRow: recipes.count, inSection: 0)
            recipes.append(recipe)
            tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom)
        }

1 个答案:

答案 0 :(得分:0)

在将食谱添加到食谱后尝试使用tableView.beginUpdates()tableView.endUpdates()

    @IBAction func unwindToRecipeList(segue: UIStoryboardSegue) {
    if let sourceViewController = segue.sourceViewController as? RecipeDetailViewController, recipe = sourceViewController.recipe {
        if let selectedIndexPath = tableView.indexPathForSelectedRow {
            recipes[selectedIndexPath.row] = recipe
            tableView.reloadRowsAtIndexPaths([selectedIndexPath], withRowAnimation: .None)
        } else {

            recipes.append(recipe)

            tableView.beginUpdates()
            tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: recipes.count-1, inSection: 0)], withRowAnimation: .Automatic)
            tableView.endUpdates()
        }
    }
    }