SwiftUI在tvOS中实现Master and Detail结构

时间:2019-07-28 16:15:03

标签: swiftui

从beta 4开始,实现Master and Detail结构的方法应该是使用.navigationViewStyle(.doubleColumn)。在iOS / iPadOS / macOS上完美运行,但在tvOS上却无法运行...这是一个错误或我缺少了什么?

import SwiftUI

struct ContentView: View {
    var arra = ["Margherita","Marinara","Calzone"]
    var body: some View {
        NavigationView {
            List(arra, id: \.self) { pizza in
                NavigationLink(destination: SecondView(pizza: pizza)) {
                    Text(pizza)
                }
            }.navigationBarTitle("MASTER")

            SecondView(pizza: arra[0])
        }
        .navigationViewStyle(.doubleColumn)
    }
}

struct SecondView: View {
    var pizza : String
    var body: some View {
        Text(pizza)
        .navigationBarTitle("DETAIL")
    }
}

tvOS result

1 个答案:

答案 0 :(得分:0)

(从GM版本开始)官方文档显示如下信息:双列样式将堆积在tvOS上,就像它是纵向模式的iPhone一样。因此,不可能自动获得“大师级和细节级”的外观,就像它是iPad上的风景一样,您必须自己构建它。即使您在UIKit中使用一个UISplitViewController!鉴于这种行为,我认为只有当主屏幕为全屏CollectionView(如Netflix App)时才可以使用。