带有 SwiftUI 的 tvOS 上的 NavigationLink 按钮无法正常工作

NavigationLink buttons on tvOS with SwiftUI not working

我正在尝试使用 Swift 在 Apple TV 上构建一个简单的导航 UIUI:

据我所知,我需要将 NavigationLinkNavigationLinkButton 结合使用。

我已经尝试了几种实现方式,其中 none 成功了:

        NavigationLink(destination: view2) {
            Image("placeholder").frame(width:400, height: 300)
            Text("Button")
        }

        NavigationLink(destination: view2) {
            Button(action: {print("hey")}) {
                VStack{
                    Image("placeholder").frame(width:400, height: 300)
                    Text("Button")
                }
            }
        }

        Button(action: {print("hi1")}) {
            VStack{
                Image("placeholder").frame(width:400, height: 300)
                Text("Button")
            }
        }.background(NavigationLink(destination: view2) { Text("hi2") })



         NavigationLink(destination: view2) {
            Text("hey")
         }.background(Button(action: {print("hey")}) {
            VStack{
                Image("placeholder").frame(width:400, height: 300)
                Text("Button")
            }
        })

前两个无法使用 Magic Remote 进行选择:它们不会成为焦点。当我按下最后一个时,它们根本不会导航到另一个视图。

如何使用 Swift 在 tvOS 上实现这种导航方式UI?

NavigationLink 独立运行,仅在 watchOS 上运行(这可能会造成混淆),在所有其他受支持的操作系统中,它应该包含在 NavigationView 中操作,所以

伪代码

  NavigationView {
     // ... some code

     NavigationLink(...)   // must be anywhere inside

     // ... other code
  }