navigationBarItems 中的 SwiftUI NavigationButton
SwiftUI NavigationButton within navigationBarItems
我希望能够使用 NavigationButton
导航到 .navigationBarItems
中的新视图。这就是我期望的工作方式:
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
NavigationButton(destination: TestView()) {
Text("Next")
}
)
}
但是,"Next" 按钮没有任何作用!我知道 PresentationButton 提供了一个像这样的弹出视图:
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
PresentationButton(destination: TestView()) {
Text("Next")
}
)
}
但这不是我要找的。
正如我在评论中告诉你的那样,这是一个错误。但它已得到修复,现在它的工作方式完全符合您自 Beta 5 以来的预期,但请记住,NavigationButton
已更改为 NavigationLink
。所以它会像:
struct ContentView: View {
var body: some View{
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
NavigationLink(destination: TestView()) {
Text("Next")
}
)
}
}
}
如果您有一个列表并且需要浏览屏幕,那么您应该使用 NavigationLink
而不是 NavigationButton
,因为它最近发生了变化。例如:-
NavigationView{
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail()){
LandmarkRow(landmark: landmark)
}
}
}
我希望能够使用 NavigationButton
导航到 .navigationBarItems
中的新视图。这就是我期望的工作方式:
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
NavigationButton(destination: TestView()) {
Text("Next")
}
)
}
但是,"Next" 按钮没有任何作用!我知道 PresentationButton 提供了一个像这样的弹出视图:
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
PresentationButton(destination: TestView()) {
Text("Next")
}
)
}
但这不是我要找的。
正如我在评论中告诉你的那样,这是一个错误。但它已得到修复,现在它的工作方式完全符合您自 Beta 5 以来的预期,但请记住,NavigationButton
已更改为 NavigationLink
。所以它会像:
struct ContentView: View {
var body: some View{
NavigationView {
Text("Hello world")
.navigationBarTitle(Text("Title"))
.navigationBarItems(trailing:
NavigationLink(destination: TestView()) {
Text("Next")
}
)
}
}
}
如果您有一个列表并且需要浏览屏幕,那么您应该使用 NavigationLink
而不是 NavigationButton
,因为它最近发生了变化。例如:-
NavigationView{
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail()){
LandmarkRow(landmark: landmark)
}
}
}