관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] UIWindow, makeKeyAndVisible() 본문

iOS 기본 (swift)

[iOS - swift] UIWindow, makeKeyAndVisible()

jake-kim 2021. 1. 24. 01:51

UIWindow 란?

  • View 들을 담는 컨테이너
  • 사용자 인터페이스에 배경을 제공하며 이벤트 처리 행동을 제공하는 객체

  • 시각적인 화면을 가지고 있지 않고 기능적인 면을 담당(상호작용 처리, fkdnxldx z축 레벨 설정, 좌표계 변환)
  • 자동으로 Xcode가 앱의 기본 Window를 제공
    - 최초 iOS프로젝트에는 Storyboard를 사용하여 앱의 View들을 정의 
    - storyboard는 Xcode에서 자동으로 제공하는 AppDelegate(또는 SceneDelegate)에 window속성이 존재해야가능

최초 프로젝트 생성 시 스토리보드와 연결된 View를 표현하기 위해 Strong으로 UIWindow객체가 참조되고 있는것을 확인

* 주의할점: UIWindow는 UIView의 subclass

스토리보드가 아닌 코드로 View를 구성할 때 - Window rootViewController 수정이 필요

  • window가 가리키는 스토리보드 이름 정보는 info.plist에 저장

  • 스토리보드를 사용하면 UIWindow객체를 새로 만들필요가 없지만, rootViewController를 수정
// AppDelegate or SceneDelegate

let myVC = UIViewController()

window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = myVC
window?.makeKeyAndVisible()
  • window.makeKeyAndVisible() 의미
    - keyWindow로 설정
    - keyWindow: window가 여러개 존재할 때, 가장 앞쪽에 배치된 window를 `key window`라고 지칭

  • window의 rootViewController를 위에서 세팅해주고 makeKeyAndVisible() 부르면 마침내 지정한 rootViewController가 상호작용을 받는 현재 화면으로 세팅 완료

* makeKeyAndVisible 개념 참고

https://developer.apple.com/documentation/uikit/uiwindow/1621610-makekey

Comments