将UIViewController与Storyboard集成到SwiftUI项目中。过渡后顶部的空白

问题描述 投票:1回答:1

我有一个样品 SwiftUI 项目,以了解是否可以从SwiftUI过渡到 ViewUIKit UIViewController. 而我可以。

以下是我的 UIViewController.

import UIKit
import SwiftUI

class HomeViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.orange
    }
}

struct HomeViewControllerRepresentation: UIViewControllerRepresentable {
    func makeUIViewController(context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) -> HomeViewController {
        UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "homeViewController") as! HomeViewController
    }

    func updateUIViewController(_ uiViewController: HomeViewController, context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) {

    }
}

而且我有SwiftUI View 如下所示。

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: HomeViewControllerRepresentation()) {
                    Text("Tap me")
                }
            }
        }
    }
}

enter image description here

如果我点了这个链接,我将被转到 ViewVontroller. 很好,只是我的顶部有一个很大的缺口。 它是从哪里来的,我怎么才能消除它? 谢谢,我有一个SwiftUI的示例项目,想知道是否可以从Swift过渡到SwiftUI。

ios swift uiviewcontroller storyboard swiftui
1个回答
0
投票

我假设它的大头区域是空的。NavigationView那就把它藏起来吧

    NavigationView {
        VStack {
            NavigationLink(destination: HomeViewControllerRepresentation()) {
                Text("Tap me")
            }
        }
        .navigationBarTitle("")
        .navigationBarHidden(true)
    }
© www.soinside.com 2019 - 2024. All rights reserved.