【问题标题】:How can I navigate to Storyboard VC from SwiftUI View?如何从 SwiftUI 视图导航到 Storyboard VC?
【发布时间】:2021-08-09 09:35:49
【问题描述】:

我创建了这个 SwiftUI 视图:

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView{
            MasterView()
        }.navigationViewStyle(DoubleColumnNavigationViewStyle())
    }
}

struct MasterView: View {
     var body: some View {
            Form {
                Section(header: Text("Geplant")) {
                    Section {
                        NavigationLink(destination: /* How can I navigate to a Storyboard ViewController?*/) { Text("Berlin") }

                    }
                
                }
            }
            .navigationBarTitle("Wähle Reise")
    }
}

如您所见,我想在“NavigationLink(destination: .....) 行导航到 Storyboard VC。

之前,我使用 UIKit VC 中的 UIHostingController 导航到 SwiftUI ContentView。

有人可以帮助我吗?

请随时向我询问其他代码/屏幕截图:)

【问题讨论】:

    标签: ios swift swiftui uikit


    【解决方案1】:

    使用UIViewControllerRepresentable

    struct UIKitView: UIViewControllerRepresentable {
        typealias UIViewControllerType = UIKitViewController
    
        func makeUIViewController(context: Context) -> UIKitViewController {
            let sb = UIStoryboard(name: "Main", bundle: nil)
            let viewController = sb.instantiateViewController(identifier: "UIKitViewController") as! UIKitViewController
            return viewController
        }
        
        func updateUIViewController(_ uiViewController: UIKitViewController, context: Context) {
            
        }
    }
    

    然后现在使用

    NavigationLink(destination: UIKitView()) { Text("Berlin") }
    

    【讨论】:

    • 太棒了!我只是将它复制到我的代码下面,但它说“类型'UIKitView'不符合协议'UIViewControllerRepresentable'”,“在范围内找不到类型'UIKitViewController'”,我必须导入什么?
    • 或者我必须用一些东西替换 UIKitViewController 吗?
    • UIKitViewController 这个是我的演示版。您需要替换为您的控制器名称。
    猜你喜欢
    • 2020-06-03
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2021-02-20
    相关资源
    最近更新 更多