투케이2K

4. (ios/swift) 뷰 화면 전환 (intent) 실시 및 데이터 전송 수행 본문

IOS

4. (ios/swift) 뷰 화면 전환 (intent) 실시 및 데이터 전송 수행

투케이2K 2021. 10. 16. 11:13

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT


[방법 설명]


[소스 코드 : Main]

//
//  MainController.swift
//  testUI
//
//  Created by lotecs on 2021/10/16.
//

import UIKit

class MainController: UIViewController {

    // [MainController : 버튼 UI 객체 정의 실시]
    @IBOutlet weak var intentBtn: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        print("")
        print("=======================")
        print("[MainController > viewDidLoad() : 액티비티 시작 실시]")
        print("=======================")
        print("")
    }

    // [MainController : 버튼 클릭 이벤트 정의 실시]
    @IBAction func intentAction(_ sender: Any) {
        print("")
        print("=======================")
        print("[MainController > intentAction() : 인텐트 이동 버튼 클릭 이벤트 발생]")
        print("=======================")
        print("")
        // [스토리보드 사용 : present 방식 : SubVC = 스토리보드 아이디 지정 / as = 컨트롤러 지정]
        guard let SubVC = self.storyboard?.instantiateViewController(identifier:"SubVC") as? SubController
        else {
            return
        }
                
        // 인텐트로 넘길 데이터 정의 실시 : SubController 쪽에서 변수 선언 필요
        SubVC.name = "투케이"
        SubVC.age = 28
                
        SubVC.modalPresentationStyle = .fullScreen // 전체화면 (기본은 팝업형태)
        self.present(SubVC, animated: false, completion: nil) // Main >> Sub 인텐트 이동 실시
    }
    
}

[소스 코드 : Sub]

//
//  SubController.swift
//  testUI
//
//  Created by lotecs on 2021/10/16.
//

import UIKit

class SubController: UIViewController {
    
    // [전역 변수 선언 실시 : 인텐트로 넘어온 데이터 받기 위함]
    var name : String = ""
    var age : Int = 0
    
    // [UI 객체 컴포넌트 정의 실시]
    @IBOutlet weak var subBtn: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        print("")
        print("=======================")
        print("[SubController > viewDidLoad() : 액티비티 시작 실시]")
        print("=======================")
        print("")
        
        // [인텐트로 넘어온 데이터가 있는지 확인 실시]
        print("")
        print("=======================")
        print("[SubController > viewDidLoad() : 인텐트로 넘어온 데이터 확인 실시]")
        print("[name : \(name)]")
        print("[age : \(age)]")
        print("=======================")
        print("")
    }

    // [SubController : 닫기 버튼 클릭 이벤트 정의]
    @IBAction func subBtnClickEvt(_ sender: Any) {
        print("")
        print("=======================")
        print("[SubController > subBtnClickEvt() : 닫기 버튼 클릭 이벤트 발생]")
        print("=======================")
        print("")
        
        // [화면 종료 실시]
        dismiss(animated: false, completion: nil)
    }
    
}

 


[결과 출력]


 

반응형
Comments