본문 바로가기
iOS

[Swift] 스위프트 실전 프로젝트 5. Flight Booking

by 꿈나무 김땡땡 2020. 7. 12.

출처

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌

https://www.inflearn.com/course/swift4-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-ios-%EA%B0%9C%EB%B0%9C/dashboard

 

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌 - 인프런

Swift4 를 이용해 여러개의 앱을 만들어 보는 iOS 개발강좌 입니다. 기본적인 내용을 빠르게 학습하고, 여러 실용적인 예제들로 지식을 자신을 것으로 만들 수 있는 강좌 입니다. 최대한 빠르고, 효

www.inflearn.com

 

주요 내용

  • FlightBooking 프로젝트 만들기
  • 배경화면 이미지 넣기 ( https://pixabay.com 추천! )
  • Main.storyboard
    • background에 image 추가 (imageView 추가 > image 넣기)
    • TextView, Label, Button 등 넣기
    • Date Picker 추가
  • IBOutlet, IBAction 만들기
  • viewController.swift
    • 초기화 시 return 부분, select 부분 안보이도록
    • Departure Date 버튼 클릭 하면 Picker View 보이도록 : showDatePickerAction
    • RoundTrip Switch 움직이면 Return trip 정보 보이도록 : showReturnDateAction
      • sender : UISwitch
    • Departure Date의 Picker View에서 날짜 변경 시 DepartureButton에서 날짜 바뀌도록 : selectedDateAction
      • sender : UIDatePicker
      • date 형 변환 : documentation > 'date' > DateFormatter 참고 (formatter & dateString)
    • Return Date의 Picker View에서도 날짜 변경 시 ReturnButton에서 날짜 바뀌도록
      • showDatePickerAction에 연결 (Touch Up Inside)
      • Main.storyboard에서 DepartureButton은 tag 1번, ReturnButton은 tag 2번 부여
      • var buttonTag:Int = 1을 글로벌 변수로 선언
      • showDatePickerAction에서 buttonTag 변수에 tag 번호 넣기
      • selectedDateAction에서 buttonTag = 1이면 DepartureButton에서, 2이면 ReturnButton에서 날짜 바뀌도록 수정

완성 예시

코드

1) ViewController.swift

class ViewController: UIViewController {

    @IBOutlet weak var departureDateButton: UIButton!
    @IBOutlet weak var returnDateLabel: UILabel!
    @IBOutlet weak var returnDateButton: UIButton!
    @IBOutlet weak var selectDatePicker: UIDatePicker!
    var buttonTag:Int = 1
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        returnDateLabel.isHidden = true
        returnDateButton.isHidden = true
        selectDatePicker.isHidden = true
    }
    @IBAction func showDatePickerAction(_ sender: UIButton) {
        if selectDatePicker.isHidden == false {
            selectDatePicker.isHidden = true
        } else {
            selectDatePicker.isHidden = false
        }
        buttonTag = sender.tag
    }
    @IBAction func showReturnDateAction(_ sender: UISwitch) {
        returnDateButton.isHidden = !sender.isOn
        returnDateLabel.isHidden = !sender.isOn
    }
    @IBAction func selectedDateAction(_ sender: UIDatePicker) {
        let formatter = DateFormatter()
        formatter.dateFormat = "YY-MM-d hh:mma"
        
        let dateString = formatter.string(from: sender.date)
        if buttonTag == 1 {
            departureDateButton.setTitle(dateString, for: UIControl.State.normal)
        } else {
            returnDateButton.setTitle(dateString, for: UIControl.State.normal)
        }
        
    }
    

}

댓글