UIActivityViewController
UIActivityViewController는 텍스트 복사, SNS 공유, 이미지, URL, AirDrop, 메시지로 보내기 등등
여러 항목들을 쉽게 공유할 수 있도록 해주는 컨트롤러로 간단하게 구현이 가능하다.

이 포스트에서는 텍스트뷰의 텍스트를 공유하도록 구현하려고 한다.
var shareList = [String]()
if let cell = contentCollectionView.cellForItem(at: IndexPath(row: viewModel?.currentIndex ?? 0, section: 0)) as? ContentCollectionViewCell,
let shareText = cell.shareContentTextView.text {
shareList.append(shareText)
}
컬렉션뷰 셀 안에 텍스트 뷰가 있기 때문에 cell에 접근 후 해당 텍스트뷰의 텍스트를 가져와 shareList 배열에 담아준다.
let activityVC = UIActivityViewController(activityItems: shareList, applicationActivities: nil)
// 공유하기 기능 중 제외할 기능이 있을 때 사용
// activityVC.excludedActivityTypes = [UIActivityType.airDrop, UIActivityType.addToReadingList]
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
이후 UIActivityViewController를 생성한 뒤 전달할 데이터를 activityItems로 전달하고 self.present로 화면에 띄워주면 끝.
전체 코드
@IBAction func tapShareButton(_ sender: Any) {
var shareList = [String]()
if let cell = contentCollectionView.cellForItem(at: IndexPath(row: viewModel?.currentIndex ?? 0, section: 0)) as? ContentCollectionViewCell,
let shareText = cell.shareContentTextView.text {
shareList.append(shareText)
}
let activityVC = UIActivityViewController(activityItems: shareList, applicationActivities: nil)
// 공유하기 기능 중 제외할 기능이 있을 때 사용
// activityVC.excludedActivityTypes = [UIActivityType.airDrop, UIActivityType.addToReadingList]
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
}
'iOS' 카테고리의 다른 글
| 컴포지션 레이아웃에서 데이터에따라 섹션 분기처리 (0) | 2024.03.10 |
|---|---|
| collectionView - 가로방향으로 셀 3개 넣기 (0) | 2024.01.28 |
| iOS - StackView에서 Subview 제거할때 주의점 (0) | 2023.07.24 |
| iOS - 커스텀뷰를 테이블뷰와 비슷하게 사용하기 (0) | 2023.07.11 |
| iOS - 텍스트의 특정 부분만 Bold 처리하기 (0) | 2023.06.11 |