如何解决导航标题未显示
因此,起初我想摆脱主屏幕上的导航栏,因为它不想显示标题,而且我真的不需要它。
但是,由于使用NavigationLink
,因此无法将其删除。所以我留在一个小泡菜里。
最小代码
struct ContentView: View {
var body: some View {
NavigationView {
Text("Loading")
}.navigationBarTitle(Text("Home"))
}
}
中
var body: some View {
NavigationView {
if posts.isEmpty {
Text("Loading")
//.navigationBarTitle("") //this must be empty
.navigationBarHidden(true)
} else {
(REST OF CODE)
}
}
}
尽管如此,它仍然无法隐藏。问题是当if语句运行时,它会不断消失。
解决方法
.navigationBarTitle
以及其他类似的修饰符应在内部 NavigationView
使用,例如
struct ContentView: View {
var body: some View {
NavigationView {
Text("Loading")
.navigationBarTitle(Text("Home")) // << here !!
}
}
}
更新:如果您想使两个条件分支的修饰符都起作用,则将条件包装到某个容器(VStack
,Group
等)中,例如
var body: some View {
NavigationView {
Group {
if posts.isEmpty {
Text("Loading")
} else {
(REST OF CODE)
}
}
//.navigationBarTitle("") //this must be empty
.navigationBarHidden(true) // << here !!
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。