我试图在查看和弹出操作项上点击操作按钮后显示共享表。问题是份额表必须来自指定的 VC。在普通的 VC 中,我只会说 self。但在这种情况下,一旦点击操作项,我们通常呈现共享表的 vc 就会被忽略。这就是操作项与 peek 和 pop 的配合方式。我如何告诉共享表是从原始 VC 或下面的 VC 呈现的?
这是共享表的代码。
//This is in the function createShareSheet
branchUniversalObject.showShareSheet(with: linkProperties, andShareText: "Check out this post!", from: self) { (string, bool) in
print ("done")
}
这是操作项的代码:
override var previewActionItems: [UIPreviewActionItem] {
let action2 = UIPreviewAction(title: "Share", style: .default, handler: { previewAction, viewController in
//This basically gives data to the function that has the above code for creating the share sheet.
self.createShareSheet(self.selectedItem!)
return [action2]
})
最佳答案
您没有提供足够的代码让我给出准确的解决方案,但基本上您需要将“当前” View Controller 传递给“peek” View Controller ,以便它可以使用它来呈现共享表。
类似于:
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
guard let detailVC = storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController else { return nil }
detailVC.rootVC = self
return detailVC
}
现在您可以在 peek
操作处理程序中使用 rootVC
属性来显示右侧 vc 中的共享表
关于ios - 使用 Peek 和 Pop 共享工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145196/