Swift — 說說 UIActivityViewController

用於從 APP 提供標準服務的 ViewController。

Jeremy Xue
4 min readJul 5, 2018

前言:

最近在好想工作室內部的 app-camp 群組,工作室的 Host 詢問了一個問題:

在吃午餐的時候,Howard 把這個任務個別交給我們 Android 跟 iOS 的一個人來做研究,因此我就收到要來研究這個問題的任務了。

Overview

UIActivityViewController 該系統提供多種標準服務,例如:複製項目到剪貼簿、將內容發佈到社交媒體網站、通過電子郵件或 SMS 發送項目等等。APP 也可以定義客製化服務。

你的 APP 負責配置、準備顯示與關閉此 ViewController。ViewController 的配置包含指定 ViewController 應該在其中操作的數據對象。( 你還可以指定 APP 支持的自定義服務列表。)當顯示 ViewController 時,必須使用適用於當前設備的方法。

在 iPad 上,你必須在彈出窗口( popover )中顯示 ViewController。在 iPhone 或 iPod touch 上,你必須用模態方式( modally )顯示它。

Topic:

init(activityItems:applicationActivities:)

初始化和返回一個用於指定數據的活動 ViewController 的對象。

  • activityItems:applicationActivities

要在 ViewController 上執行活動數據的對像數組。數組中的對像類型是可變的,取決於應用程序管理的數據。例如:數據可能包含一個或多個表示當前所選內容的字串或圖片對象。

此 Array 的對象可以是遵循 UIActivityItemSource 協議的對象,例如:UIActivityItemProvider 對象,代替實際的數據對象。你不想要提供該數據在需要之前的情況下,來源跟提供程序的對象作為相對應數據的代理。

請注意,你不應該在 activityItem 陣列中重用( reuse )包含 UIActivityItemProvider 對象的活動的 ViewController 對象。

此 Array 不能為 nil 且必須至少包含一個對象。

  • applicationActivities

一組UIActivity對象,表示應用程序支持的自定義服務。 此參數可能為 nil。

completionWithItemsHandler

解除活動 ViewController 後執行的完成處理程序。

excludedActivityTypes

不應該顯示的服務列表。

後記:

UIActivityController 說起來也是挺抽象的,下一篇文章我們會試著使用它實作一些小功能來應用,感覺「 分享 」也會是很常運用到的功能,或許實作一次能夠更了解他的功能。

最後附上蘋果官方文件 UIActivityViewController 讓大家參考,順便讓各位確認看看我翻譯是否有意思跑掉了(我蔡英文:

--

--

Jeremy Xue

Hi, I’m Jeremy. [好想工作室 — iOS Developer]