iosipadswiftuiactivityviewcontroller

UIActivityViewController in Swift Crashes on iPad


I am making a share function in my game and I have the code and it works fine on iPhone but when I test it on a iPad, when I tap the share button the app crashes. I am using the following code for the share button

let textToShare = "Check out this website!"

if let myWebsite = NSURL(string: "http://www.apple.com/") {
   let objectsToShare = [textToShare, myWebsite]
   let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
   self.view?.window?.rootViewController?.presentViewController(activityVC, animated: true, completion: nil)
}

Solution

  • The UIActivityViewController's has non-null popoverPresentationController property when running on iPad. So, try below.

    if let wPPC = activityVC.popoverPresentationController {
        wPPC.sourceView = some view
        //  or
        wPPC.barButtonItem = some bar button item
    }
    presentViewController( activityVC, animated: true, completion: nil )