我正在尝试使用SwiftUI在Apple TV上构建一个简单的导航UI:
正如我所知,我需要结合使用NavigationLink
或NavigationLink
与Button
。
我尝试了几种实现,但都没有用:
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上实现这种导航样式?
答案 0 :(得分:1)
NavigationLink
独立运行,仅在 watchOS 上运行(可能会引起混淆),在所有其他受支持的OS中,应将其包含在NavigationView
中才能运行,因此< / p>
以伪代码
NavigationView {
// ... some code
NavigationLink(...) // must be anywhere inside
// ... other code
}