Я новичок в программировании на IOS, а также в SwiftUI. Исходя из Java / Kotlin Android. Я хочу изучать SwiftUI. У меня есть WKWebView. Я хочу изменить страницу SwiftUI в соответствии с изменениями URL в WKWebView. Я проделал большую работу, как вы можете видеть ниже. Но я испытываю затруднения в навигации.
struct ContentView: View, Listener {
func onFetched() {
NavigationLink(destination: MainView()) {/* HERE this is not working.
App never goes to MainView.swift page.*/
Text("Show Detail View")
}
}
var body: some View {
NavigationView {
VStack {
WebView(authListener: self)
}.navigationBarTitle(Text("PEAKUP Velocity"))
}
}
}
struct WebView: UIViewRepresentable {
var listener: Listener
@ObservedObject var observe = observable()
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
observe.observation = uiView.observe(\WKWebView.url, options: .new) { view, change in
if let url = view.url {
self.observe.loggedIn = true // We loaded the page
self.listener.onFetched()
uiView.isHidden = true
}
}
uiView.load("https://google.com")
}
}
protocol Listener {
func onFetched()
}
Обновление: я пробовал это в onFetched ():
NavigationLink(destination: MainView()) { Text("") }''''
And I tried this piece of code:
NavigationView {
NavigationLink(destination: SecondView()){
Text("Navigation Link")
}
}
Обновление 2: я пробовал этот код также в onFetched:
self.presentation(Model(MainView(), onDismiss: nil))
Обновление 3: я пробовал это:
self.sheet(isPresented: $sayHello) {
MainView()
}