Notice
Recent Posts
Recent Comments
Link
투케이2K
350. (ios/SwiftUI) [SwiftUI] [iOS 17] onAppear, onDisappear, onChange 사용해 뷰 라이프 사이클 (life cycle) 확인 본문
IOS
350. (ios/SwiftUI) [SwiftUI] [iOS 17] onAppear, onDisappear, onChange 사용해 뷰 라이프 사이클 (life cycle) 확인
투케이2K 2023. 10. 18. 21:24[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
import SwiftUI
struct ContentView: View {
/**
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* 1. 앱 View : 앱이 사용자 인터페이스로 표시하는 뷰 계층 구조가 포함
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* 2. 실제 사용자에게 표시되는 화면 구성 실시
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* */
/**
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
*
* // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
* */
// -----------------------------------------------------------------------------------------
// MARK: - [전역 변수 선언]
// -----------------------------------------------------------------------------------------
@Environment(\.scenePhase) private var scenePhase
private static let ACTIVITY_NAME = "ContentView"
// -----------------------------------------------------------------------------------------
// MARK: - [화면에 표시되는 시각적 요소 정의 실시]
// -----------------------------------------------------------------------------------------
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.onAppear {
S_Log._D_(description: "onAppear :: 뷰 화면 표시", data: nil)
}
.onDisappear {
S_Log._D_(description: "onDisappear :: 뷰 종료 상태", data: nil)
}
.onChange(of: scenePhase) {
if String(describing: scenePhase).lowercased() == "active" {
S_Log._D_(description: "onChange :: active :: 뷰 포그라운드 전환", data: nil)
}
else if String(describing: scenePhase).lowercased() == "background" {
S_Log._D_(description: "onChange :: background :: 뷰 백그라운드 전환", data: nil)
}
else if String(describing: scenePhase).lowercased() == "inactive" {
S_Log._D_(description: "onChange :: inactive :: 뷰 상태 변화 감지", data: nil)
}
else {
S_Log._D_(description: "onChange :: else :: 뷰 else 상태", data: [String(describing: scenePhase)])
}
}
.padding()
}
} // [클래스 종료]
[결과 출력]
================================================================
LOG :: CLASS PLACE :: ContentView.swift :: body :: 85
-------------------------------------------------
LOG :: NOW TIME :: 2023-10-18 21:19:22
-------------------------------------------------
LOG :: DESCRIPTION :: onChange :: active :: 뷰 포그라운드 전환
================================================================
반응형
'IOS' 카테고리의 다른 글
Comments