SwiftUI NavigationView 删除空白

Gur*_*ngh 8 swift swiftui swiftui-navigationlink swiftui-navigationview

我有一个HomeView

NavigationView {
    ZStack {
        VStack {
             NavigationLink(destination: ProfileView()) {
                 if session.userInSession?.activated != 1 {
                     completionText(message: "Complete Your Profile")
                 } else {
                     completionText(message: "Edit Your Profile")
                 }
             }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的ProfileView没有包含在导航视图中,也没有栏标题:

VStack {
    ScrollView(showsIndicators: false) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的ProfileView也可以从我的访问SettingView

NavigationView {
    VStack(alignment: .leading) {
        List {
            NavigationLink(destination: ProfileView()) {
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我ProfileView从设置屏幕访问我的时,它显示正常。但是当我从我的访问它时,HomeView它会在顶部创建空白:

在此输入图像描述

当我通过“设置”时,效果很好:

在此输入图像描述

如何删除上面的空白?

Asp*_*eri 13

看起来你的HomeView/sNavigationView.navigationBarTitleDisplayMode(.large)或自动的,默认情况下是这样.large,但是你SettingView.navigationBarTitleDisplayMode(.inline)(考虑到下面的分隔符< Setting),所以你会看到标题栏的不同高度。

当然,这是由于不缺少详细代码而假设的,但使其相同的可能解决方案是为 增加显式模式ProfileView,例如:

VStack {
   ScrollView(showsIndicators: false) {
   }
}.navigationBarTitleDisplayMode(.inline)     // << here !!
Run Code Online (Sandbox Code Playgroud)