[swift] PMAlertController 알림창 알림창 공유 버튼 설정하기

개요

PMAlertController는 iOS 개발에서 사용되는 알림창을 커스터마이징할 수 있는 라이브러리입니다. 이 라이브러리를 사용하여 알림창에 공유 버튼을 추가하고자 할 때 어떻게 구현해야 하는지 알아보겠습니다.

단계별로 설정하기

1. PMAlertController 라이브러리 가져오기

PMAlertController를 사용하기 위해서는 해당 라이브러리를 프로젝트에 추가해야 합니다. CocoaPods를 사용한다면 Podfile에 다음과 같이 추가합니다.

pod 'PMAlertController'

2. 알림창 생성 및 설정하기

알림창을 생성하고 필요한 설정을 적용합니다. 아래는 간단한 예시 코드입니다.

import PMAlertController

func showAlert() {
    let alertVC = PMAlertController(title: "알림", description: "메시지를 공유하시겠습니까?", image: UIImage(named: "alert_icon"), style: .alert)

    // 알림창 버튼 추가
    alertVC.addAction(PMAlertAction(title: "공유하기", style: .default, action: {
        // 공유 버튼 클릭 시 동작할 내용 작성
        self.shareMessage()
    }))

    // 취소 버튼 추가
    alertVC.addAction(PMAlertAction(title: "취소", style: .cancel, action: nil))

    // 알림창 표시
    self.present(alertVC, animated: true, completion: nil)
}

func shareMessage() {
    // 메시지 공유 로직 작성
}

위의 코드에서 addAction 메소드를 사용하여 알림창에 버튼을 추가합니다. PMAlertAction을 생성하여 버튼의 제목, 스타일, 클릭 시 수행할 동작을 설정할 수 있습니다.

3. 공유 버튼 동작 설정하기

공유 버튼을 클릭하면 shareMessage() 메소드가 호출되도록 설정해야 합니다. shareMessage() 메소드 내에는 실제로 메시지를 공유하는 로직을 작성해야 합니다.

func shareMessage() {
    let message = "공유할 메시지"
    
    let activityItems: [Any] = [message]
    
    let activityVC = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
    
    // iPad에서 알림창의 방향 설정
    if let popoverPresentationController = activityVC.popoverPresentationController {
        popoverPresentationController.sourceView = self.view
        popoverPresentationController.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.maxY, width: 0, height: 0)
        popoverPresentationController.permittedArrowDirections = []
    }
    
    // 액티비티 컨트롤러 표시
    self.present(activityVC, animated: true, completion: nil)
}

shareMessage() 메소드에서는 UIActivityViewController를 사용하여 메시지를 공유할 때 사용할 수 있는 앱들의 목록을 표시합니다. activityItems에는 공유할 메시지나 파일 경로 등의 정보를 전달할 수 있습니다.

마무리

PMAlertController를 사용하여 알림창에 공유 버튼을 설정하는 방법을 알아보았습니다. 이제 위의 단계를 참고하여 프로젝트에 맞게 알림창을 커스터마이징하여 사용해보세요.

참고 자료