728x90
반응형
//
// ViewController.swift
// NavigationController
//
// Created by Mac on 2020/08/30.
// Copyright © 2020 MyMac. All rights reserved.
//
import UIKit
class ViewController: UIViewController,EditDelegate {
// 이미지 값 세팅
func didImageOnOffDone(_ controller: EdiViewController, isOn: Bool) {
if isOn{
imgView.image = imgSingapore
self.isOn = true
}else{
imgView.image = imgMalaysia
self.isOn = false
}
}
// 메세지 값을 텍스트 필드에 표시
func didMessagedEditDone(_ controller: EdiViewController, message: String) {
txtMessage.text = message
}
@IBOutlet weak var txtMessage: UITextField!
@IBOutlet weak var imgView: UIImageView!
let imgSingapore = UIImage(named: "Singapore.jpg")
let imgMalaysia = UIImage(named: "Malaysia.jpg")
// 스위치 디폴트 on
var isOn = true
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
// 세그웨이 이용해 화면 전환
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let editViewController = segue.destination as!
EdiViewController
if segue.identifier == "editBUtton"{
//버튼을 클릭한 경우
editViewController.textWayValue = "segue : use button"
}else if segue.identifier == "editBarButton"{
// 바 버튼을 클릭한 경우
editViewController.textWayValue = "segue : use Bar button"
}
// 수정 화면으로 텍스트 메시지와 이미지 상태 전달
editViewController.textMessage = txtMessage.text!
editViewController.delegate = self // EdiViewController에 있는 var delegate = EditDelegate?를 사용한다.
}
} // ---------
//
// EdiViewController.swift
// NavigationController
//
// Created by Mac on 2020/08/31.
// Copyright © 2020 MyMac. All rights reserved.
//
import UIKit
// EidtView
// protocol을 반드시 ViewController 페이지 보다 먼저써야 해야한다.
protocol EditDelegate{
func didMessagedEditDone(_ controller: EdiViewController, message: String)
func didImageOnOffDone(_ controller: EdiViewController, isOn: Bool)
}
class EdiViewController: UIViewController {
var textMessage: String = ""
var textWayValue: String = ""
var isOn = false
var delegate : EditDelegate?
@IBOutlet weak var lblWay: UILabel!
@IBOutlet weak var txtMessage: UITextField!
@IBOutlet weak var switchisOn: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
lblWay.text = textWayValue // 위에 있는 var textWayValue변수가 lblWay.text로 들어간다.
txtMessage.text = textMessage // 위에 있는 var textMessage 변수가 txtMessage.text로 들어간다.
switchisOn.isOn = isOn //위에 있는 var isOn 변수가 switchisOn으로 들어간다.
//프로토콜 쓰면서 여기까지 써야한다.
}
// 이미지 true일 때 싱가폴, false일 때 말레이시아
@IBAction func switchImgOnOff(_ sender: UISwitch) {
if sender.isOn{
isOn = true
}else{
isOn = false
}
}
@IBAction func btnDone(_ sender: UIButton) {
// 메인 화면으로 텍스트와 이미지 상태 보내기
if delegate != nil{
delegate?.didImageOnOffDone(self, isOn: isOn)
delegate?.didMessagedEditDone(self, message: txtMessage.text!)
}
_ = navigationController?.popViewController(animated: true)
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
반응형