UIActivityViewController的应用程序将不会被选中

时间:2017-07-27 12:11:58

标签: swift3 uiactivityviewcontroller

所以,我创建了一个基本的活动视图控制器,其中包含最需要的参数,并且按照预期调用它,但是!

在展示后,您无法点按任何项目,但底部的“取消”除外。

在几个站点上查看,在调试模式等,尚未找到任何结果。

实施

func shareViaOther() {
        let body = Constants.ShareContent.title + "\n\n" + Constants.ShareContent.body
        let image = UIImage(named: Constants.ImageNames.appIcon)!
        let url = Constants.ShareContent.url!

        let items: [Any] = [body, image, url]

        let activityVC = UIActivityViewController(activityItems: items, applicationActivities: nil)
        activityVC.popoverPresentationController?.sourceView = view

        activityVC.excludedActivityTypes = [
            UIActivityType.postToWeibo,
            UIActivityType.postToTencentWeibo,
            UIActivityType.postToVimeo,
            UIActivityType.postToFlickr,
            UIActivityType.saveToCameraRoll,
            UIActivityType.assignToContact,
            UIActivityType.print,
            UIActivityType.copyToPasteboard
        ]

        present(activityVC, animated: true, completion: nil)
    }

免责声明:似乎清理项目,重置手机和重建没有任何区别..

任何帮助都将受到高度赞赏!!

1 个答案:

答案 0 :(得分:0)

我发现了这个错误,这里是回顾和解决方案:

小结

我为常见的UIViewController创建了一个扩展,其中我覆盖了touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)方法。 它从未被调用过,并且停止了我的预期行动。它没有允许我在表格视图中选择任何表视图单元格,我添加到视图中 - 缺少点击手势识别器。

更令人沮丧的部分导致活动视图控制器无法选择,但滚动条正常工作 - 我开始意识到问题可能出在哪里。

解决方案

从UIViewController扩展中删除touchesBegan(...),并创建了一个BaseViewController,我继承了每个视图控制器,并使用该touchesBegan(...)函数扩展了BaseViewController功能。现在,我可以通过点击它们来选择呈现的应用程序。干杯!