IOS swift如何知道activityViewController何时成功使用

时间:2017-07-15 20:43:38

标签: ios swift swift3 uiactivityviewcontroller

我有一个使用UIActivityViewController的tableView,因此用户可以在其他第三方网络Facebook,Twitter,短信等上分享内容。我有一个名为IncreaseShareByOne()的功能及其用途是计算共享内容的次数。我的问题是,现在每次点击UIActivityViewController时函数都会触发。在某种程度上,我可以找出用户是否真的共享某些东西,以便我可以正确使用该功能?有时你打开UIActivityViewController并决定不分享任何东西,所以我想抓住而不是使用那个功能。我是swift的新手,正在使用版本3。

func sharedShareAction(controller: UIViewController, sender: UIButton) {

    controller.present(activityViewController,animated: true,completion: nil)
    IncreaseShareByOne()
}

1 个答案:

答案 0 :(得分:6)

您可以为UIActivityViewController添加完成处理程序。在完成处理程序中,检查用户是否使用completed值提交。你可能想做这样的事情:

func sharedShareAction(controller: UIViewController, sender: UIButton) {

    controller.present(activityViewController,animated: true, completion: nil)

    activityViewController.completionWithItemsHandler = { activity, completed, items, error in
            if !completed {
                // handle task not completed
                return
            }
            IncreaseShareByOne()
        }
}

查看API docs了解详情。