Home > AI > IOS > SwiftUI >

First Launch View

FirstLaunchView.swift

1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct FirstLaunchView: View {
    @Environment(\.presentationMode) private var mode
 
    var body: some View {
        Text("FirstLaunchView")
            .background(Color.blue)
            .onTapGesture {
                let generator = UINotificationFeedbackGenerator()
                generator.notificationOccurred(.success)
                self.mode.wrappedValue.dismiss()
                UserDefaults.standard.setValue(false, forKey: UserDefaultsKeyEnum.isFirstLaunch.rawValue)
            }
    }
}

FirstLaunchViewModifier.swift

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct FirstLaunchViewModifier: ViewModifier {
 
    @State var isFirstLaunch: Bool = UserDefaults.standard.value(forKey: UserDefaultsKeyEnum.isFirstLaunch.rawValue) as? Bool ?? true
    func body(content: Content) -> some View {
       
        content
            .fullScreenCover(isPresented: $isFirstLaunch) {
                FirstLaunchView()
            }
 
    }
}
 
extension View {
    func firstLaunchViewModifier() -> some View {
        self.modifier(FirstLaunchViewModifier())
    }
}

Main.swift

1
2
3
4
5
6
7
8
9
10
11
@main
struct ddApp: App {
     
    var body: some Scene {
        WindowGroup {
            ContentView()
                .environmentObject(HomeGlobal())
                .firstLaunchViewModifier()
        }
    }
}

Leave a Reply