[iOS] UIActivityViewController

Seonhu Kim·2023년 4월 9일
0

iOS

목록 보기
12/16
post-thumbnail

iOS에서 공유하기 화면을 띄울 때 사용하는 ViewController이다.
예를 들어 특정한 아이템(사진, 텍스트, URL)등을 담아 특정한 곳(카카오톡, 네이버, 메세지, 메모 등)에 전송할 수 있다.

공유 메뉴 : Activity View

  • UIActivityViewController가 Activity View를 관리
  • UIActivityViewController는 UIViewController에 포함되어 있음

공유하는 아이템 : activityItems: [Any]

  • 가변적 데이터 집합이며, 하나 이상의 텍스트 또는 이미지로 구성됌 → nil이 아니어야함
  • 문자열(String)
  • URL 링크(String)
  • 이미지(UIImage)
  • UIActivityItemSource 프로토콜을 따르는 커스텀 타입의 인스턴스 등

제외 서비스 지정 : excludedActivityTypes

activityVC.excludedActivityTypes = [.postTwitter, .postToweibo … ]

아이패드 관련 설정 : popoverPresentationController

아이패드의 경우 아이폰과 달리 popover 형태로 뷰가 띄워지기 때문에 어느 위치에 표시할 건지 정해줘야한다.

  • popoverPresentationController?.sourceView: 어떤 뷰 위에 표시할지 결정
  • popoverPresentationController?.sourceRect: 어느 위치 기준으로 표시할지 결정

공유하기 완료후 핸들러 : completionWithItemsHandler

activityViewController.completionWithItemsHandler = { (activity, success, items, error) in
    if success {
	// 성공했을 때 작업
   }  else  {
	// 실패했을 때 작업
   }

실제 사용 방법

let imageToShare: UIImage = UIImage(named: "image.png")
let urlToShare: String = ""
let textToShare: String = ""

//  iPhone에서는 모달, iPad에서는 팝 오버로 나타남
let activityViewController = UIActivityViewController(activityItems: [imageToShare, urlToShare, textToShare], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
profile
iOS Developer.

0개의 댓글