Sky*_*Sky 8 swift swiftui swiftui-list
去苹果开发者网站下载下面的教程项目:
https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation
在任何 iPad 模拟器上运行它,你只会得到一个空白页面,但代码在 Mac/iPhone 模拟器和我的真实 iPhone 设备上运行良好。
这绝对是一个错误,我已经向 Apple 报告了,我在这里发帖只是想要像我一样说这个问题的人,请不要在重置模拟器上浪费你的时间,检查你的代码,重启你的笔记本电脑,等到苹果来解决这个问题。
import SwiftUI
struct LandmarkList: View {
var body: some View {
NavigationView {
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
LandmarkRow(landmark: landmark)
}
}
.navigationBarTitle(Text("Landmarks"))
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { deviceName in
LandmarkList()
.previewDevice(PreviewDevice(rawValue: deviceName))
.previewDisplayName(deviceName)
}
}
}
Run Code Online (Sandbox Code Playgroud)
Pro*_*in8 11
它实际上工作得很好。默认情况下,在 iPad 上,navigationStyleaNavigationView表示您正在查看带有折叠主视图的详细视图。尝试旋转设备或模拟器,然后您将看到您的主列表。选择一个项目会将其推送到详细信息视图中。或者,从左边缘向右滑动,您的列表就会出现。
不喜欢这种行为?您可以将导航视图设置navigationStyle为StackNavigationViewStyle(). 它只会在任何给定时间在顶部显示单个视图。
我目前无法找到始终显示主视图的选项,因为目前我的应用程序是使用UISplitViewController. 这很可能是暂时的情况。
根据@Procrastin8的回答,我是来展示示例代码的,你只需要添加一行代码 .navigationViewStyle(StackNavigationViewStyle()
import SwiftUI
struct LandmarkList: View {
var body: some View {
NavigationView {
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
LandmarkRow(landmark: landmark)
}
}
.navigationBarTitle(Text("Landmarks"))
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { deviceName in
LandmarkList()
.previewDevice(PreviewDevice(rawValue: deviceName))
.previewDisplayName(deviceName)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2938 次 |
| 最近记录: |