我有一个嵌入在 swiftUI 视图中的 UIViewController
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView(overlayShow: OverlayShow())
}
}
struct OnboardingWrapper: UIViewControllerRepresentable {
var overlayShow: OverlayShow
func makeUIViewController(context: Context) -> ReturnSomthing {
let controller = ReturnSomthing(shareConfig: onboardingConfig)
controller.showOverlay = overlayShow
return controller
}
func updateUIViewController(_ uiViewController: ReturnSomthing, context: Context) {
}
public typealias UIViewControllerType = ReturnSomthing
}
我希望能够直接从 SwiftUI 导航到另一个带有嵌入式 UIViewController 的 SwiftUI 视图 SO,我在 SwiftUI 的视图上做了
struct ContentView: View {
@ObservedObject var overlayShow: OverlayShow = OverlayShow()
var body: some View {
NavigationView {
NavigationLink(destination: OverlayView(overlay: LoadingUnknownOverlayViewContainer(description: "it is spinning :0", designModel: LoadingOverlayDesignModel(type: .unknown))), isActive: $overlayShow.isShowingOverlay) {
OnboardingWrapper(overlayShow: overlayShow)
}
}
}
}
导航激活的条件是overlayShow.isShowingOverlay
is true
。此变量在 UIViewController 中使用ObservableObject
.
问题是,overlayShow.isShowingOverlay
无论我在哪里点击第一个 UIViewController的值,OnboardingWrapper
导航都会被激活并转到下一页。