[swift] 팝업창에서 사용자의 휴가 일정을 기반으로 추천 여행지 표시하기 - Swift PopupDialog

안녕하세요! 이번에는 팝업창에서 사용자의 휴가 일정을 기반으로 추천 여행지를 표시하는 방법을 알아보겠습니다. 이를 위해 Swift의 PopupDialog 라이브러리를 사용하겠습니다.

1. PopupDialog 라이브러리 추가하기

먼저, 팝업창을 생성하고 사용하기 위해 PopupDialog 라이브러리를 프로젝트에 추가해야 합니다. CocoaPods를 사용해도 되지만, 간단한 예제를 위해 수동으로 추가해 보겠습니다.

  1. PopupDialog 라이브러리를 다운로드합니다. (GitHub 페이지: https://github.com/Orderella/PopupDialog)
  2. 다운로드한 폴더에서 PopupDialog 폴더를 Xcode 프로젝트에 직접 추가합니다.

2. 팝업창 디자인 및 사용자 입력 받기

팝업창 디자인과 사용자 입력을 받기 위해 ViewController에 다음과 같은 코드를 추가합니다.

import PopupDialog

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func showPopup(_ sender: UIButton) {
        let popup = PopupDialog(title: "휴가 일정 입력", message: "휴가 시작일과 종료일을 선택하세요.")

        let vacationStartDatePicker = UIDatePicker()
        let vacationEndDatePicker = UIDatePicker()

        // 휴가 시작일 선택
        let startDateAlert = AlertViewController(title: "휴가 시작일", message: nil, customView: vacationStartDatePicker)
        startDateAlert.addAction(DefaultButton(title: "확인") {
            let startDate = vacationStartDatePicker.date
            // 여기에서 선택한 휴가 시작일에 따른 추천 여행지를 계산하고 표시하는 로직을 구현합니다.
            // 예시로는 showAlert 함수를 호출하여 선택한 휴가 일정을 알려주도록 하겠습니다.
            self.showAlert(title: "휴가 일정 선택", message: "휴가 시작일: \(startDate)")
        })

        // 휴가 종료일 선택
        let endDateAlert = AlertViewController(title: "휴가 종료일", message: nil, customView: vacationEndDatePicker)
        endDateAlert.addAction(DefaultButton(title: "확인") {
            let endDate = vacationEndDatePicker.date
            // 여기에서 선택한 휴가 종료일에 따른 추천 여행지를 계산하고 표시하는 로직을 구현합니다.
            // 예시로는 showAlert 함수를 호출하여 선택한 휴가 일정을 알려주도록 하겠습니다.
            self.showAlert(title: "휴가 일정 선택", message: "휴가 종료일: \(endDate)")
        })

        // 팝업창에 시작일, 종료일 선택창 추가
        popup.addButtons([
            DefaultButton(title: "휴가 시작일 선택", dismissOnTap: false) {
                self.present(startDateAlert, animated: true, completion: nil)
            },
            DefaultButton(title: "휴가 종료일 선택", dismissOnTap: false) {
                self.present(endDateAlert, animated: true, completion: nil)
            },
            CancelButton(title: "취소") {}
        ])

        self.present(popup, animated: true, completion: nil)
    }
}

3. 추천 여행지 계산 및 표시하기

사용자가 휴가 시작일과 종료일을 선택하면, 해당 일정에 맞는 추천 여행지를 계산하여 팝업창에 표시하도록 하겠습니다. showAlert 함수는 간단한 알림을 표시하는 역할을 합니다.

private func showAlert(title: String, message: String) {
    let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "확인", style: .default, handler: nil))
    self.present(alert, animated: true, completion: nil)
}

위의 코드를 ViewController에 추가하면, 팝업창에서 사용자의 휴가 일정을 선택하고 해당 일정에 따른 추천 여행지를 표시할 수 있게 됩니다.

이제 팝업창의 디자인과 추가 기능들을 사용자의 요구에 맞게 수정하면 됩니다.

이렇게 Swift의 PopupDialog 라이브러리를 사용하여 팝업창에서 사용자의 휴가 일정을 기반으로 추천 여행지를 표시하는 방법을 알아보았습니다.