我不确定Beta 3中是否有任何更改,但是,当尝试将NavigationBarTitle修改器添加到NavigationView时,它不显示标题的文本吗?有什么想法吗?
NavigationView {
List(0 ..< 20) { item in
NavigationLink(destination: Text("1")) {
Text("Navigate 1")
}
}
}.navigationBarTitle(Text("Update")).navigationBarHidden(false)
}
该列表显示在导航视图中,但没有标题
答案 0 :(得分:4)
至少在我将其复制并粘贴到项目中时,编写的代码存在一个小问题。末尾有一个大括号。这对我来说是一个错误,但是我假设您不小心从body
属性中复制了右花括号。
由于未显示导航栏标题,您应该在.navigationBarTitle
上将.navigationBarHidden
和NavigationView
设置为List
的修饰符,而不是:< / p>
NavigationView {
List(0 ..< 20) { item in
NavigationLink(destination: Text("1")) {
Text("Navigate 1")
}
}
.navigationBarTitle(Text("Update"))
.navigationBarHidden(false)
}
您也可以只删除.navigationBarHidden(false)
(除非您在先前的视图或其他视图中将其设置为true
)。
答案 1 :(得分:0)
您的代码运行良好,navigationBarTitle
没有过时。它必须放在上方(导航视图内)。是的,有时会令人困惑,有必要记住这一点。
对于当前拥有它的位置 .navigationBarTitle(Text ("Update")).navigationBarHidden(false)
,您需要设置修饰符 .navigationViewStyle(StackNavigationViewStyle ())
,这意味着无论屏幕大小如何,您都应该始终显示第一个屏幕。
var body: some View {
NavigationView {
List(0 ..< 20) { item in
NavigationLink(destination: Text("1")) {
Text("Navigate 1")
}
}
.navigationBarTitle(Text("Update"), displayMode: .automatic).navigationBarHidden(false)
}
// that means only show one view at a time no matter what device I'm working
.navigationViewStyle(StackNavigationViewStyle())
}