2015-04-09 14 views
5

Wykonuję funkcję udostępniania w mojej grze i mam kod i działa poprawnie na iPhonie, ale kiedy testuję go na iPadzie, po dotknięciu przycisku udostępniania aplikacja ulega awarii. Używam następujący kod do przycisku zakładowegoUIActivityViewController w Swift Crashes na iPadzie

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) 
} 
+0

Nie mów po prostu "aplikacja się zawiesza". Mówi ci ważne rzeczy, gdy się zawiesza. Jakie ważne rzeczy to ci mówi? – matt

+0

Podaj szczegóły dotyczące awarii. – rmaddy

Odpowiedz

17

ma niezerową własność popoverPresentationController na UIActivityViewController kiedy działa na iPadzie. Spróbuj poniżej.

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

Jak byś zmienił lokalizację Pop Over View – Loanb222

+1

Dzięki, ".barButtonItem = niektóre elementy przycisku paska" jest naprawdę dobry sposób. –

+0

FYI, nie potrzebujesz tutaj słowa 'if let'. Opcjonalne łańcuchowanie zadziała. 'activityVC.popoverPresentationController? .barButtonItem = cokolwiek" –

Powiązane problemy