ios - 模拟器与物理设备:一次使用后 NavigationLink 损坏
问题描述
我正在使用 SwiftUI 创建一个 iOS 应用程序。我在用着:
- Xcode 版本 11.3 测试版 (11C24b)
- 运行 iOS 13.3 的 iPad 模拟器
- 也运行 iOS 13.3 的物理 iPad
但是,该应用程序在两种设备上的行为不同。例如在实体 iPad 上,NavigationLink
只能使用一次。
这是我的第一个 iOS 应用程序。所以我想知道如何规避或解决这些错误?
import SwiftUI
enum ExerciseType: String, CaseIterable, Codable, Hashable {
case vowels = "Vowels"
case special = "Special Characters"
case small = "Small Characters"
case long = "Long Vovels"
}
enum LessonType: String, CaseIterable, Codable, Hashable {
case hiragana = "Introduction to Hiragana"
case katakana = "Introduction to Katakana"
case kanji = "Introduction to Kanji"
}
struct ContentView: View {
var body: some View {
NavigationView{
Form{
Section(header: Text("Default Lesson")){
List{
ForEach(LessonType.allCases, id:\.self){ lesson in
NavigationLink(destination: LessonView(), label: {Text(lesson.rawValue)})
}
}
}
}
.navigationBarTitle("iPad NavigationLink")
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct LessonView: View {
var body: some View{
Form{
List{
ForEach(ExerciseType.allCases, id:\.self){ exercise in
NavigationLink(destination: Text(exercise.rawValue), label: {Text(exercise.rawValue)})
}
}
}
}
}
解决方案
Apple 在 iOS 13.3 beta 4 中修复了该错误。请记住,iOS 13.3 在您测试它时处于测试阶段。这不是 iOS 13.2 中的错误,因此无需担心。
推荐阅读
- java - Hadoop Mapreduce:未调用Reduce方法
- java - 非泛型类如何导致运行时错误
- swift - Swift 和 Firebase 实时数据库:如何获取对象的数量?
- ruby - 什么时候你更喜欢星号参数而不是 ruby 方法签名中的选项哈希
- java - 转换后日出日落时间相等
- python - 对 Flask 应用程序的请求未通过 Docker 容器
- c# - 如何增加然后减少变量
- mysql - 如何为 globalThis 下的对象使用自定义类型?
- graphql - 使用 Graphql 突变处理 POST 错误
- android - lateinit 属性 onItemClickCallback 尚未初始化