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

Posted

技术标签:

【中文标题】模拟器与物理设备:一次使用后 NavigationLink 损坏【英文标题】:Simulator vs Physical Device: NavigationLink broken after one use 【发布时间】:2019-11-27 17:05:32 【问题描述】:

我正在使用 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))
                
            
        
    

【问题讨论】:

请分享您的表格视图代码。 当然,我添加了一些在真 iPad 上不起作用的示例代码 forums.developer.apple.com/message/395130 "同时运行 iOS 13.3 的物理 iPad" ...您是指 iPadOS 吗? :D 【参考方案1】:

Apple 在 iOS 13.3 beta 4 中修复了该错误。请记住,iOS 13.3 在您测试它时处于测试阶段。这不是 iOS 13.2 中的错误,因此无需担心。

【讨论】:

【参考方案2】:

在 Xcode 11.3 (11C29) 上测试

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

【讨论】:

以上是关于模拟器与物理设备:一次使用后 NavigationLink 损坏的主要内容,如果未能解决你的问题,请参考以下文章

关于路由交换设备接头物理层或协议层无法UP及其他情况案例分析

如果使用物理设备或 Bluestacks 模拟器,布局显示会非常不同

无法在物理设备上获取联系人-iOS

iPhone 6 上的模拟器和物理设备之间的差异

我无法使用物理键盘输入 uitextfield

导入 Firebase 以在物理设备上使用时出错