KWiOS
KWiOS0101
KWiOS
  • 분류 전체보기 (108)
    • Algorithm (41)
      • 이코테 (14)
      • 이코테 문제풀이 (21)
      • 프로그래머스 (6)
    • CS (1)
      • 모두를 위한 컴퓨터 과학(CS50 2019) (0)
    • iOS (15)
    • Swift (36)
      • Swift문법 (32)
      • 기타 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 6

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
KWiOS

KWiOS0101

iOS

iOS - 공유하기 기능

2023. 8. 6. 00:16

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
    'iOS' 카테고리의 다른 글
    • 컴포지션 레이아웃에서 데이터에따라 섹션 분기처리
    • collectionView - 가로방향으로 셀 3개 넣기
    • iOS - StackView에서 Subview 제거할때 주의점
    • iOS - 커스텀뷰를 테이블뷰와 비슷하게 사용하기
    KWiOS
    KWiOS

    티스토리툴바