gpt4 book ai didi

ios - 如何快速呈现来自 UICollectionView 的 activityViewController

转载 作者:行者123 更新时间:2023-11-28 11:59:53 26 4
gpt4 key购买 nike

我目前有一个 UICollectionView,我希望能够在其中显示一个 activityViewController 以启用共享(不是来自单元格,而是来自 UIView 在 collectionView 中)。问题是下面的代码不起作用,因为 present() 是一个 viewController 方法。

let activityViewController = UIActivityViewController(activityItems: [test], applicationActivities: nil)
present(activityViewController, animated:true, completion:nil)

我已经尝试创建一个 viewController 的实例来调用 present() ,但是这不起作用,因为它不在 View 层次结构中。

我找到的最接近答案的是提到一个弱委托(delegate),但我不确定如何让它起作用。

正在寻找有关如何使这项工作发挥作用的任何想法。谢谢

更新我的层次结构包含一个 viewController HomeViewController,然后我在屏幕的下半部分显示一个 collectionView routeDetailCollectionView。在 routeDetailCollectionView 中,我有一个包含 UIButton shareButton 的 UIView routeHeaderView。我想在按下 shareButton 时显示 ios 共享菜单。

最佳答案

您应该使用以下方法从 UIApplication 获取 rootViewController

func topMostController() -> UIViewController {
var rootViewController: UIViewController = UIApplication.shared.keyWindow!.rootViewController!
while (rootViewController.presentedViewController != nil) {
rootViewController = rootViewController.presentedViewController!
}
return rootViewController
}

之后,使用rootViewController呈现UIActivityViewController

let rootViewController = topMostController()

let activityViewController = UIActivityViewController(activityItems: [test], applicationActivities: nil)
rootViewController?.present(activityViewController, animated:true, completion:nil)

关于ios - 如何快速呈现来自 UICollectionView 的 activityViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com