Present SwiftUI without tap

I wanted to present an View with modal animation full screen on top the the existing view/viewcontroller programmatically(without button tap or tap gesture).

Is it possible to present a view without button tap/tap gesture?

there are many ways to do this, this is one way:

import SwiftUI

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

struct ContentView: View {
    @State var goToIt = false

    var body: some View {
        NavigationView {
            NavigationLink(destination: Text("Second View"), isActive: $goToIt) {
                Text("Second view in 3 seconds")
            }
        }.onAppear {
        	// simulating another process that triggers the change
            DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                goToIt = true
            }
        }
    }
}

 let swiftUIController = UIHostingController(rootView: ContentView(showModal: .constant(true))) rootController()!.present(swiftUIController, animated: true, completion: nil)

Above code works but not sure whether its a best practice.

         

Present SwiftUI without tap
 
 
Q