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