我正在我的应用程序中实现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监视结束时,如何强制表重新加载并显示其重新加载的数据?