Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我可以将UIActivityViewController添加到我的ViewController吗?_Ios_Swift_Uiactivityviewcontroller - Fatal编程技术网

Ios 我可以将UIActivityViewController添加到我的ViewController吗?

Ios 我可以将UIActivityViewController添加到我的ViewController吗?,ios,swift,uiactivityviewcontroller,Ios,Swift,Uiactivityviewcontroller,我正在使用与默认照片应用程序相同的照片共享按钮 单击“共享”按钮时,它将作为子视图uiactivityviewcontroller/uiactivityviewcontroller.view添加到我的viewcontroller中 我的代码: let text = "This is some text that I want to share." // set up activity view controller let textToShare = [ text ]

我正在使用与默认照片应用程序相同的照片共享按钮

单击“共享”按钮时,它将作为子视图uiactivityviewcontroller/uiactivityviewcontroller.view添加到我的viewcontroller中

我的代码:

   let text = "This is some text that I want to share."

    // set up activity view controller
    let textToShare = [ text ]
    let activityViewController = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)

    // exclude some activity types from the list (optional)
    //activityViewController.excludedActivityTypes = [ .airDrop,.postToFacebook ]

    // present the view controller
    if (UIDevice.current.userInterfaceIdiom == .phone){
       self.containerView.addSubview(activityViewController.view)
    }else{
        activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash
        self.present(activityViewController, animated: true, completion: nil)
    }
但这段代码给了我一个错误UIActivityViewController只能在iPad上的popover中以模式或作为contentViewController使用

有更好的解决办法吗


提前感谢。

问题在于这行:

self.containerView.addSubview(activityViewController.view)
这在几个方面都是违法的!。必须显示“活动视图”控制器,如下所示:

self.present(activityViewController, animated: true)

根据文档,您应该以模态方式呈现活动控制器

该系统提供多种标准服务,例如复制项目 到粘贴板,将内容发布到社交媒体网站,发送 通过电子邮件或短信等方式发送邮件。应用程序还可以定义自定义 服务。您的应用程序负责配置、演示和 解除此视图控制器。视图控制器的配置 涉及指定视图控制器所在的数据对象 我们应该采取行动。您还可以指定应用程序中的自定义服务列表 支持。显示视图控制器时,必须使用 当前设备的适当方式。在iPad上,你必须 在弹出窗口中显示视图控制器。在iPhone和iPodtouch上, 你必须以适当的方式呈现它


有关更多信息

您的应用程序rootVC是否嵌入了NavigationController?@karthikeyan Yesi知道这一点。但在我的情况下,不存在activityViewController在我的UIViewController中添加与所讨论的屏幕截图相同的内容。没有“在我的情况下”。使用活动视图控制器的方法只有一种,我刚刚告诉过你它是什么。我创建的共享按钮与默认的iPhone和IPad照片应用程序相同。照片应用程序按照我说的做。当您点击共享按钮时,它会调用present,以显示活动视图控制器。你也必须这样做。争论没有意义!照我说的做,否则你们会崩溃。和我说的一样。你们已经回答了我的问题,所以我分享了文档链接