SwiftUI SceneDelegate, AppDelegate 변경
해당 포스팅은 실제 프로젝트를 그대로 가져왔습니다. 따라서 네이밍이나 주석 등 불편한 부분이 있을 수 있습니다
자 이 포스팅을 왜 쓰냐면 SwiftUI 기반으로 프로젝트를 진행중인데, window를 변경해야하는 경우가 생겼음.
근데, 이게 기존에 SwiftUI에서 제공되는 WindowGroup을 사용하기에 자료도 넘 적고, 생각보다 코드관리도 잘 안되고 불편한게 너무나도 많았음.
그래서 많은 고민 끝에, SwiftUI에서 SceneDelegate와 AppDelegate를 채택해서 사용하기로 함.
이게 무슨말이냐면
기존에 처음에 SwiftUI로 프로젝트를 만들면 이렇게 나타날 것이고, Scene은 보다시피 ScenePhase를 통해서 관리하여 사용할 수 있었다.
다만, 다른 쪽에서 윈도우를 교체해야 하거나, 알림 등 SceneDelegate에 작성해야 하는 코드가 많을 경우 SwiftUI를 제대로 활용하기가 어려웠음.
(아직 스유를 잘 몰라서 그럴 확률 200%)
그래서 익숙하게 사용하는 AppDelegate와 SceneDelegate로 갈아타기 슝슝
1. SwiftUI의 @main을 AppDelegate로 옮겨주어야 한다
.
2. info.plist를 변경해야 한다.
스유로 프로젝트를 만든결우 Info.plist가 보이지 않을 수도 있는데, 그 경우에
저기 보면 info라고 있다.
🚨 주의: Enable Multiple Windows를 YES로 해둘경우 검은 화면이 나타날 수 있음.
'apple > iOS' 카테고리의 다른 글
[iOS] UICollectionView에 대해서 알아보기 4편 (Rx + FlexLayout + PinLayout) (0) | 2022.08.31 |
---|---|
FlexLayout 'YGEnums.h' file not found Error (0) | 2022.08.30 |
[iOS] UICollectionView에 대해서 알아보기 3편 (동적 Cell) (0) | 2022.08.22 |
[iOS] 시뮬레이터에서 Remote Notification (푸시알림) (0) | 2022.08.17 |
[iOS] UICollectionView에 대해서 알아보기 2편 (0) | 2022.08.12 |