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

问题描述 投票:1回答:1

我正在使用SwiftUI创建iOS应用。我正在使用:

  • XCode版本11.3 beta(11C24b)
  • 运行iOS 13.3的iPad模拟器
  • 也运行iOS 13.3的物理iPad

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

This is how it looks on the physical device (NavigationLink is broken after first use)And on the simulator it works perfectly

这是我的第一个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)})
                }
            }
        }
    }
}


ios swift swiftui
1个回答
0
投票

该错误已由Apple在iOS 13.3 beta 4中修复。请记住,在您测试iOS 13.3时,它处于beta版本。它不是iOS 13.2中的错误,因此不再需要担心。

© www.soinside.com 2019 - 2024. All rights reserved.