반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Algorithm
- JavaScript
- 알고리즘
- 스택
- Ai
- 자바스크립트
- Swift
- BAEKJOON
- SSAFY
- JS
- Python
- 큐
- MacOS
- 신한투자증권
- IOS
- 혁신금융서비스
- frontend
- React #Web #프런트엔드
- dfs
- BFS
- programmers
- 자문형
- 파이썬
- 모던자바스크립트
- 일임형
- 백준
- 자료구조
- algorithms
- 로보어드바이저
- algoritms
Archives
- Today
- Total
Step by Step
ViewController 간 Data 교환 본문
반응형
뷰컨트롤러에 직접 값 전달 방식
- 첫번째 뷰컨트롤러에서 두번째 뷰컨트롤러로 전달할 값을 준비
- 첫번째 뷰컨트롤러에서 전달하는 값을 대입할 수 있도록 두번째 뷰컨트롤러에 변수를 정의
- 첫번째 뷰컨트롤러에서 두번째 뷰컨트롤러의 인스턴스를 생성
- 첫번째 뷰컨트롤러에서 참조된 두번째 뷰컨트롤러의 대응 변수에 전달할 값을 대입
- 첫번째 뷰컨트롤러에서 두번째 뷰컨트롤러로 화면을 전환
뷰컨트롤러간에 데이터 전달 데모
- 입력을 담당하는 컨트롤들을 사용.
- UITextField, UISwitch, UIStepper, UISlider, UISegment, UIButton컨트롤을 사용.
nil 값이 아니기 때문에 ! 연산자를 사용
추후에 변수들에 nil을 대입하여 메모리 삭제..?프로그램을 끝내는...?용도로 사용하기 위해 !를 사용한다.
뷰컨트롤러간에 데이터 전달 데모
- 아웃렛과 액션의 연결이 정상적인지를 판단할 때 Connection Inspector창에서 확인할 수 있다.
//
// ViewController.swift
// DemoDelivery
//
// Created by 정찬진 on 3/26/25.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var paramTextField: UITextField!
@IBOutlet var paramSwitch: UISwitch!
@IBOutlet var paramStepper: UIStepper!
@IBOutlet var paramSegment: UISegmentedControl!
@IBOutlet var paramSlider: UISlider!
@IBOutlet var lblSwitch: UILabel!
@IBOutlet var lblResult: UILabel!
@IBOutlet var lblStepper: UILabel!
@IBAction func onSwitch(_ sender: Any) {
//다운캐스팅(?)
let updateSwitch = sender as! UISwitch
if (updateSwitch.isOn == true) {
lblSwitch.text = "불이 켜진 상태"
} else {
lblSwitch.text = "불이 꺼진 상태"
}
}
@IBAction func onStepper(_ sender: Any) {
let intervalStepper = sender as! UIStepper
lblStepper.text = "스테퍼 : \(Int(intervalStepper.value))"
}
@IBAction func onSlider(_ sender: Any) {
let sliderValue = sender as! UISlider
lblResult.text = "슬라이더 : \(Int(sliderValue.value))"
}
@IBAction func onSegment(_ sender: Any) {
let segmentControl = sender as! UISegmentedControl
switch segmentControl.selectedSegmentIndex{
case 0:
lblResult.text = "남성"
case 1:
lblResult.text = "여성"
case 2:
lblResult.text = "중성"
default:
break
}
}
@IBAction func onSubmit(_sender:Any){
if let uvc = self.storyboard?.instantiateViewController(withIdentifier: "ResultViewController") as? ResultViewController{
//미리 데이터 넘기기
uvc.paramTextField = self.paramTextField.text!
uvc.paramSwitch = self.paramSwitch.isOn
uvc.paramStepper = self.paramStepper.value
uvc.paramSlider = self.paramSlider.value
uvc.paramSegment = self.paramSegment.selectedSegmentIndex
//실제 화면 이동
self.present(uvc, animated:true)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
import UIKit
class ResultViewController: UIViewController {
//데이터 받기
var paramTextField:String = ""
var paramSwitch:Bool = false
var paramStepper:Double = 0
var paramSlider:Float = 0
var paramSegment:Int = 0
@IBOutlet var lblResult: UILabel!
@IBAction func dismiss(_ sender: Any) {
self.presentingViewController?.dismiss(animated : true, completion:nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
var result:String = ""
result = paramTextField + "\n"
result += (paramSwitch == true ? "선택됨" : "선택안함") + "\n"
result += "스테퍼 : \(paramStepper)" + "\n"
result += "슬라이더 \(self.paramSlider)" + "\n"
switch paramSegment {
case 0:
result += "남자"
case 1:
result += "여자"
case 2:
result += "중성"
default:
break
}
self.lblResult.text = result
}
}
반응형
'ios 앱 개발' 카테고리의 다른 글
Objective-C 기본 개념 (3) | 2025.04.21 |
---|---|
Delegate 패턴 (0) | 2025.03.26 |
Swift(Segueway 화면전환) (2) | 2025.03.26 |
Swift 기본문법(3) (1) | 2025.03.25 |
Swift 기본문법(2) 옵셔널 바인딩, 초기화 (0) | 2025.03.25 |