使用SwiftUI的tvOS上的NavigationLink按钮不起作用

时间:2020-06-19 10:40:19

标签: swift swiftui tvos

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

,

正如我所知,我需要结合使用NavigationLinkNavigationLinkButton

我尝试了几种实现,但都没有用:

        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选择:它们不会变得集中。当我按下最后一个按钮时,它们根本就不会导航到另一个视图。

如何使用SwiftUI在tvOS上实现这种导航样式?

1 个答案:

答案 0 :(得分:1)

NavigationLink独立运行,仅在 watchOS 上运行(可能会引起混淆),在所有其他受支持的OS中,应将其包含在NavigationView中才能运行,因此< / p>

以伪代码

  NavigationView {
     // ... some code

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

     // ... other code
  }