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)
            }
                
        }
        
}