swift - Swiftui [BUG] NavigationView 和 List 仅在 iPad 模拟器上不显示
问题描述
各种 iPad 模拟器上的空白页
前往 Apple 开发者网站下载以下教程项目:
https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation
在任何 iPad 模拟器上运行它,你只会得到一个空白页,但代码在 Mac/iPhone 和我真正的 iPhone 设备的模拟器上运行良好。
这绝对是一个错误,我已经向苹果报告了,我在这里发帖只是想要像我一样说这个问题的人,请不要浪费你的时间在重置模拟器上,检查你的代码,重启你的笔记本电脑,等到苹果解决这个问题。
截屏
Apple SwiftUI 教程项目的示例代码:
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)
}
}
}
解决方案
它实际上工作得很好。默认情况下,在 iPad 上,navigationStyle
表示NavigationView
您看到的是带有折叠主视图的详细视图。尝试旋转设备或模拟器,然后您将看到您的主列表。选择一个项目会将其推送到详细信息视图中。或者,从左边缘向右滑动,您的列表就会出现。
不喜欢这种行为?您可以将导航视图设置navigationStyle
为StackNavigationViewStyle()
. 在任何给定时间,它只会在顶部显示一个视图。
我目前找不到始终显示主视图的选项,因为目前我的应用程序是使用UISplitViewController
. 这很可能是暂时的情况。
推荐阅读
- javascript - Microsoft graph 发送带有附件的电子邮件
- flutter - 在 AppBar 中使用构建函数
- python - 将每行的值求和为布尔值(PySpark)
- java - 没有可用选项时如何在 Eclipse 中构建 Java 项目
- javascript - Express 服务器未向客户端发送响应(使用 fetch)
- tensorflow - 神经网络可以处理冗余输入吗?
- php - 如何让这个 php foreach 解析所有
条目? - sql - S3选择查询不识别数据
- node.js - 如何在 NodeJS 中等待多个异步函数,然后将它们全部返回以更新 Firestore 文档?
- java - 我正在尝试更新表的值 SQL 在 Java 中有错误