기존에는 코드로 강제 화면 회전시 회전 상태값 확인은 NotificationCenter 를 이용했다.
NotificationCenter.default.addObserver(self, selector: #selector(orientationDidChange(notification:)), name: UIDevice.orientationDidChangeNotification, object: nil)
@objc func orientationDidChange(notification: Notification) 함수 호출이 안됨.
IOS 16 올라오면서 디바이스 본체 자체를 회전해야 Notification이 호출된다. 무슨 이유인지는 모르겠다.
그래서 UIViewContoller 의 viewWillTransition 으로 처리하게 됬다.
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { [weak self] context in
guard let `self` = self else {
return
}
// size를 확인하면 회전된 이후 사이즈로 들어온다.
..... 회전 관련 로직 추가 .....
})
}
'Swift > UIViewController' 카테고리의 다른 글
[SWIFT]중첩된 ViewControll 한번에 Dismiss 하기 (0) | 2023.06.08 |
---|---|
[SWIFT]UIDocumentPickerViewController (0) | 2023.06.07 |
[SWIFT]IOS16 화면 회전상태 확인 (0) | 2023.04.18 |
[SWIFT]UIViewController SafeArea 영역 확인 (0) | 2023.04.17 |
[SWIFT]상위 UIViewController 가져오기 (0) | 2023.04.17 |