在 iPad 顯示 action sheet & UIActivityViewController 時必須設定彈出框顯示的位置

在 iPad 顯示 action sheet & UIActivityViewController 時,若是沒有設定彈出框顯示的位置,將造成 App 閃退,出現以下錯誤訊息。

  • action sheet 的錯誤訊息
  • UIActivityViewController 的錯誤訊息

以上錯誤訊息都提到了相關解法,其中設定 sourceView,也就是彈出框顯示的位置即可解決問題。

@IBAction func share(_ sender: UIButton) {

let controller = UIActivityViewController(activityItems: ["hello"], applicationActivities: nil)
controller.popoverPresentationController?.sourceView = sender
present(controller, animated: true, completion: nil)
}

我們將 sourceView 設為觸發 action 的 button,因此彈出框的箭頭將指到 button。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com