因此,当我在SwiftUI中列出列表时,会获得“免费”的主从详细信息拆分视图。
因此,例如:
import SwiftUI struct ContentView : View { var people = ["Angela", "Juan", "Yeji"] var body: some View { NavigationView { List { ForEach(people, id: \.self) { person in NavigationLink(destination: Text("Hello!")) { Text(person) } } } Text("") } } } #if DEBUG struct ContentView_Previews : PreviewProvider { static var previews: some View { ContentView() } } #endif
如果iPad模拟器在横向,并且第一个详细信息屏幕是表情符号,我会得到splitView。但是,如果人们点击名称,则详细信息视图为“ Hello!”。
一切都很棒。
但是,如果我以纵向方式运行iPad,则表情符号会向用户表示欢迎,然后就不会显示列表。您必须从左向右滑动才能使列表从侧面显示。
有谁知道一种显示导航栏的方法,该导航栏可以让用户点击以查看左侧的项目列表?因此,它不是仅带有表情符号的屏幕吗?
我不愿意留下一个注释,上面写着“从左侧扫入以查看文件/人员/所有内容的列表”
我记得UISplitViewController有一个可以设置的折叠属性。这里有这样的东西吗?
在Xcode 11 beta 3中,Apple已添加.navigationViewStyle(style:)
到NavigationView
。
已针对Xcode 11 Beta 5更新。
创建MasterView()和DetailsView()。
struct MyMasterView: View { var people = ["Angela", "Juan", "Yeji"] var body: some View { List { ForEach(people, id: \.self) { person in NavigationLink(destination: DetailsView()) { Text(person) } } } } } struct DetailsView: View { var body: some View { Text("Hello world") .font(.largeTitle) } }
在我的ContentView中:
var body: some View { NavigationView { MyMasterView() DetailsView() }.navigationViewStyle(DoubleColumnNavigationViewStyle()) .padding() }
输出: