Notice
Recent Posts
Recent Comments
Link
투케이2K
38. (ios/swift) 로딩 화면 연장 및 로직 처리 방법 - LaunchScreen, ViewController 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[방법 설명]
[소스 코드 : A_Intro]
import UIKit
class A_Intro: UIViewController {
/*
[클래스 설명]
1. 인트로 로딩 화면 연장 액티비티
*/
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
print("")
print("===============================")
print("[A_Intro >> viewDidLoad() :: 뷰 로드 실시]")
print("===============================")
print("")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("")
print("===============================")
print("[A_Intro >> viewWillAppear() :: 뷰 로드 완료]")
print("===============================")
print("")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("")
print("===============================")
print("[A_Intro >> viewDidAppear() :: 뷰 화면 표시]")
print("===============================")
print("")
// [뷰 컨트롤러 포그라운드, 백그라운드 상태 체크 설정 실시]
NotificationCenter.default.addObserver(self, selector: #selector(checkForeground), name: UIApplication.willEnterForegroundNotification, object: nil) // [포그라운드]
NotificationCenter.default.addObserver(self, selector: #selector(checkBackground), name: UIApplication.didEnterBackgroundNotification, object: nil) // [백그라운드]
// [포그라운드 처리 실시]
checkForeground()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("")
print("===============================")
print("[A_Intro >> viewWillDisappear() :: 뷰 정지 상태]")
print("===============================")
print("")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("")
print("===============================")
print("[A_Intro >> viewDidDisappear() :: 뷰 종료 상태]")
print("===============================")
print("")
// [뷰 컨트롤러 포그라운드, 백그라운드 상태 체크 해제 실시]
NotificationCenter.default.removeObserver(self, name: UIApplication.willEnterForegroundNotification, object: nil) // [포그라운드]
NotificationCenter.default.removeObserver(self, name: UIApplication.didEnterBackgroundNotification, object: nil) // [백그라운드]
}
// [포그라운드 및 백그라운드 상태 처리 메소드 작성]
@objc func checkForeground() {
print("")
print("===============================")
print("[A_Intro >> checkForeground() :: 뷰 컨트롤러 포그라운드]")
print("===============================")
print("")
// [화면 전환 수행]
self.intent_A_Main()
}
@objc func checkBackground() {
print("")
print("===============================")
print("[A_Intro >> checkBackground() :: 뷰 컨트롤러 백그라운드]")
print("===============================")
print("")
}
// MARK: - [액티비티 화면 전환 수행]
func intent_A_Main(){
print("")
print("===============================")
print("[A_Intro >> intent_A_Main() :: 화면 전환 수행 실시]")
print("[전환 :: A_Intro >> A_Main 화면 전환]")
print("===============================")
print("")
// [일정 시간 후 작업 수행 : post delayed]
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { // [2초 후에 동작 실시]
// [스토리보드 사용 : present 방식 : SubVC = 스토리보드 아이디 지정 / as = 컨트롤러 지정]
guard let A_MainVC = self.storyboard?.instantiateViewController(identifier:"A_MainVC") as? A_Main
else {
return
}
// 인텐트로 넘길 데이터 정의 실시 : SubController 쪽에서 변수 선언 필요
//A_MainVC.name = "test"
//A_MainVC.age = 0
A_MainVC.modalPresentationStyle = .fullScreen // 전체화면 (기본은 팝업형태)
self.present(A_MainVC, animated: false, completion: nil) // Intro >> Main 인텐트 이동 실시
}
}
} // [클래스 종료]
[소스 코드 : A_Main]
import UIKit
class A_Main: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
print("")
print("===============================")
print("[A_Main >> viewDidLoad() :: 뷰 로드 실시]")
print("===============================")
print("")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("")
print("===============================")
print("[A_Main >> viewWillAppear() :: 뷰 로드 완료]")
print("===============================")
print("")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("")
print("===============================")
print("[A_Main >> viewDidAppear() :: 뷰 화면 표시]")
print("===============================")
print("")
// [뷰 컨트롤러 포그라운드, 백그라운드 상태 체크 설정 실시]
NotificationCenter.default.addObserver(self, selector: #selector(checkForeground), name: UIApplication.willEnterForegroundNotification, object: nil) // [포그라운드]
NotificationCenter.default.addObserver(self, selector: #selector(checkBackground), name: UIApplication.didEnterBackgroundNotification, object: nil) // [백그라운드]
// [포그라운드 처리 실시]
checkForeground()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("")
print("===============================")
print("[A_Main >> viewWillDisappear() :: 뷰 정지 상태]")
print("===============================")
print("")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("")
print("===============================")
print("[A_Main >> viewDidDisappear() :: 뷰 종료 상태]")
print("===============================")
print("")
// [뷰 컨트롤러 포그라운드, 백그라운드 상태 체크 해제 실시]
NotificationCenter.default.removeObserver(self, name: UIApplication.willEnterForegroundNotification, object: nil) // [포그라운드]
NotificationCenter.default.removeObserver(self, name: UIApplication.didEnterBackgroundNotification, object: nil) // [백그라운드]
}
// [포그라운드 및 백그라운드 상태 처리 메소드 작성]
@objc func checkForeground() {
print("")
print("===============================")
print("[A_Main >> checkForeground() :: 뷰 컨트롤러 포그라운드]")
print("===============================")
print("")
}
@objc func checkBackground() {
print("")
print("===============================")
print("[A_Main >> checkBackground() :: 뷰 컨트롤러 백그라운드]")
print("===============================")
print("")
}
} // [클래스 종료]
반응형
'IOS' 카테고리의 다른 글
40. (ios/swift) toast 토스트 메시지 표시 수행 실시 (0) | 2021.10.31 |
---|---|
39. (ios/swift) 애플리케이션 설정 창 이동 실시 - 권한 거부 시 수행 (0) | 2021.10.31 |
37. (ios/swift) LaunchScreen 로딩 화면 이미지 전체 화면 만들기 방법 (0) | 2021.10.31 |
36. (ios/swift) 모바일 디바이스 기기 해상도 확인 실시 - UIScreen main bounds size width height (0) | 2021.10.30 |
35. (ios/swift) 로컬 노티피케이션 알림 발송 및 확인 실시 - UNUserNotificationCenter (0) | 2021.10.29 |
Comments