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 |