본문 바로가기
Application/Swift

22.03.29 Alert(얼럿)기능 구현

by 가나닩 2022. 3. 29.

6장

 

Alert : 경고 메시지를 표시하여 내용을 확인하게 하거나 사용자에게 선택지를 줄 수 있다.

- 아웃렛 변수 : 이미지 뷰

- 액션 함수 : 버튼

- 기타 : 이미지 파일 (lamp-on, lamp-off, lamp-remove.png)

 

전구가 켜진상태에서 "켜기" 버튼을 누르면 경고창과 함께 안내할 내용이 출력된다.

 

전구가 켜져있는 상태에서 "끄기" 버튼을 누르면 안내창에 선택지가 나온다.

 

제거 버튼을 눌렀을 경우 경고창과 함께 선택지를 보여준다.

 조건문 : 해당 예제의 코드는 조건문들로 이루어져 있다.

1. "켜기" 버튼의 조건문 : 전구가 켜져있는가? - Yes : Alert를 표시한다.

                                                           - No : 전구를 켠다. (켜진 전구 이미지를 표시한다,)

2. "끄기" 버튼의 조건문 : 전구가 켜져있는가 ? - Yes : 전구를 끌지 Alert와 함께 선택지를 표시한다.

3. "제거" 버튼 : 조건문은 사용되지 않으며 3개의 버튼 기능을 구현한다.

 

UIAlertController, UIAlertAction 등

title: style: handler: 문법

 

 

 

 

▷ 전체 코드 

더보기
//
//  ViewController.swift
//  Alert
//
//  Created by 박성수 on 2022/03/29.
//

import UIKit

class ViewController: UIViewController {
    
    let imgOn = UIImage(named: "lamp-on.png")
    let imgOff = UIImage(named: "lamp-off.png")
    let imgRemove = UIImage(named: "lamp-remove.png")
    
    var isLampOn = true
    
    @IBOutlet var lampImg: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        lampImg.image = imgOn
    }
    @IBAction func btnLampOn(_ sender: UIButton) {
        if(isLampOn==true){
            let lampOnAlert = UIAlertController(title: "경고", message: "현재 On 상태입니다", preferredStyle: UIAlertController.Style.alert)
            let onAction = UIAlertAction(title: "네, 알겠습니다.", style: UIAlertAction.Style.default, handler: nil)
            lampOnAlert.addAction(onAction)
            present(lampOnAlert, animated: true, completion: nil)
        } else {
            lampImg.image = imgOn
            isLampOn=true
        }
    }
    @IBAction func btnLampOff(_ sender: UIButton) {
        if isLampOn{
            let lampOffAlert = UIAlertController(title: "램프 끄기", message: "램프를 끄시겠습니까?", preferredStyle: UIAlertController.Style.alert)
            
            let offAction = UIAlertAction(title: "네", style: UIAlertAction.Style.default, handler: {ACTION in self.lampImg.image = self.imgOff;self.isLampOn=false})
            
            let cancelAction = UIAlertAction(title: "아니오", style: UIAlertAction.Style.default, handler: nil)
            
            lampOffAlert.addAction(offAction)
            lampOffAlert.addAction(cancelAction)
            
            present(lampOffAlert, animated: true, completion: nil)
        }
    }
    @IBAction func btnLampRemove(_ sender: UIButton) {
        let lampRemoveAlert = UIAlertController(title: "램프 제거", message: "램프를 제거하시겠습니까?", preferredStyle: UIAlertController.Style.alert)
        
        let offAction = UIAlertAction(title: "아니오, 끕니다(off).", style: UIAlertAction.Style.default, handler: {ACTION in self.lampImg.image = self.imgOff;self.isLampOn=false})
        
        let onAction = UIAlertAction(title: "아니오, 켭니다(on).", style: UIAlertAction.Style.default) {ACTION in self.lampImg.image = self.imgOn;self.isLampOn=true}
        
        let removeAction = UIAlertAction(title: "네, 제거합니다.", style: UIAlertAction.Style.destructive, handler: {ACTION in self.lampImg.image = self.imgRemove;self.isLampOn=false})
        
        lampRemoveAlert.addAction(offAction)
        lampRemoveAlert.addAction(onAction)
        lampRemoveAlert.addAction(removeAction)
        present(lampRemoveAlert, animated: true, completion: nil)
    }
    

}

'Application > Swift' 카테고리의 다른 글

22.04.06 Map-view  (0) 2022.04.08
22.03.30 Web-view  (0) 2022.03.31
22.03.28 Picker-View 구현 및 Delegate  (0) 2022.03.29