3D Touch预览结束后如何重新加载父表视图?

时间:2018-12-23 09:56:27

标签: ios swift uitableview 3dtouch

我正在我的应用程序中实现3D Touch Peek&Pop。如何在名为peek的父视图中重新加载tableView?

我有一个tableView,其中包含用户可以将其标记为收藏夹的项目。这些标记的项目被过滤到tableView的顶部,因此用户可以轻松找到它们。当用户点击一个单元格并将一个项目标记为收藏夹时,一切都会按预期进行。在3D Touch预览中,有操作按钮,其中之一是将项目标记为收藏。在此,当用户点击按钮时,该项目会被标记,但是显示该项目的tableView(在后台的父视图中)不会注册它,即使调用了tableView.reloadData()也是如此。我必须返回导航视图,然后再次打开表以查看更改。

我尝试传递一个引用,然后使用该引用进行重载,我尝试通过NotificationCenter的通知进行重载,但是似乎没有什么可以重载该表并实际显示新内容。

override var previewActionItems: [UIPreviewActionItem] {
    get {
        var items : [UIPreviewActionItem] = []

        //Other actions items

        items.append(UIPreviewAction(title: "Favourite", style: item?.favourite ?? false ? .selected : .default, handler: { action, controller in
            self.changeFavourite()
            //Need to reload the table here

        }))

        return items

    }

}

在后台重新加载tableView似乎是一个问题,而不是实际调用reload函数(据我测试,它被调用了)。

当3D Touch监视结束时,如何强制表重新加载显示其重新加载的数据?

0 个答案:

没有答案