App Delegate에서 SwiftUI 수명 주기로 전환

Apple은 몇 년 전에 새로운 SwiftUI 수명 주기를 도입했습니다. 나는 여전히 UIKit과 App Delegate 수명 주기를 사용하는 일부 앱을 가지고 있었습니다.

하나에서 다른 것으로 전환하는 것은 처음에는 사소해 보이지만 실제로는 매우 사소하다는 것을 깨닫기 위해 얼마 지나지 않아 머리를 긁적입니다.

시작하기 전에 SwiftUI에서 보기를 다시 디자인하고 사용자에게 표시되는 첫 번째 보기 역할을 하는 YourSwiftUIView를 만들어야 합니다.

먼저 AppDelegate 클래스에서 @UIUIApplicationMain를 제거합니다.

둘째, SwiftUIApp struct를 만듭니다.

import Foundation
import SwiftUI

@main
struct yourAppName: App {
        // Relevant if you use CoreData
    let persistenceController = PersistenceController.shared

    var body: some Scene {
        WindowGroup {
            YourSwiftUIView()
                    // Relevant if you use CoreData
                .environment(\.managedObjectContext, persistenceController.container.viewContext)
        }
    }
}


셋째, InfoPlist에서 UIApplicationSupportsMultipleScenes 키를 제거합니다. 이 열쇠에는 상당한 측근이 있을 것입니다. 모두 제거하십시오.

<dict>
    <key>UIApplicationSupportsMultipleScenes</key>
    <false/>
    <key>UISceneConfigurations</key>
    <dict>
        <key>UIWindowSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneConfigurationName</key>
                <string>Default Configuration</string>
                <key>UISceneDelegateClassName</key>
                <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                <key>UISceneStoryboardFile</key>
                <string>Main</string>
            </dict>
        </array>
    </dict>
</dict>


마지막으로 모든 스토리보드 파일과 함께 제공되는 ViewController를 제거할 수 있습니다.

좋은 웹페이지 즐겨찾기