2017-07-15 57 views
2

我有一個tableView,利用UIActivityViewController,所以用戶可以在其他第三方網絡Facebook,Twitter,短信等共享內容。我有一個函數IncreaseShareByOne(),它的目的是統計某些東西被共享的次數。我的問題是,現在每次點擊UIActivityViewController時都會觸發該功能。有沒有辦法,我可以找出用戶是否真的共享了一些東西,以便我可以正確使用該功能?有時你會打開UIActivityViewController並決定不共享任何內容,所以我想捕捉並且不使用該功能。我是swift新手,正在使用第3版。iOS swift如何知道activityViewController何時被成功使用

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

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

回答

2

您可以添加完成處理您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以獲得更多信息。

+1

非常感謝你的工作,現在將閱讀文檔。 –