3

我有一个HomeView

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

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

VStack {
    ScrollView(showsIndicators: false) {
        ...
    }
}

但我ProfileView也可以从我的SettingView

NavigationView {
    VStack(alignment: .leading) {
        List {
            NavigationLink(destination: ProfileView()) {
            }
        }
    }
}

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

在此处输入图像描述

当我通过设置它罚款:

在此处输入图像描述

如何删除上面的这个空白?

4

2 回答 2

5

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

当然这是一个假设,因为没有没有详细的代码,但可能的解决方案是为 增加显式模式ProfileView,例如:

VStack {
   ScrollView(showsIndicators: false) {
   }
}.navigationBarTitleDisplayMode(.inline)     // << here !!
于 2020-07-09T16:32:58.327 回答
0

这个空间可能是 NavigationView 的空标题。

您可以尝试隐藏导航栏标题:

NavigationView {
    ZStack {
        ...
    }
    .navigationBarTitle("")
    .navigationBarHidden(true)
}

作为一个测试尝试设置.navigationBarTitle("Some title"),看看你是否仍然看到这个空白空间,或者它是否被一些标题文本替换。

于 2020-07-09T16:16:27.227 回答