繁体   English   中英

模拟器与物理设备:使用一次后 NavigationLink 损坏

[英]Simulator vs Physical Device: NavigationLink broken after one use

我正在使用 SwiftUI 创建一个 iOS 应用程序。 我正在使用:

  • Xcode 11.3 测试版 (11C24b)
  • 运行 iOS 13.3 的 iPad 模拟器
  • 物理 iPad 也运行 iOS 13.3

但是,该应用程序在两个设备上的行为不同。 例如在物理 iPad 上, NavigationLink只能使用一次。

这是它在物理设备上的外观(首次使用后 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 中的错误,因此无需再担心。

在 Xcode 11.3 (11C29) 上测试

它在 iOS 13.3 设备上运行时已修复,但不在 iOS 13.3 模拟器上运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM