iOS 在某些设备模拟器上应用空白 navigationView 打开屏幕而不是其他设备模拟器

iOS app blank navigationView opening screen on some device simulators and not others

我在 Swift 5 中使用 XCode 12.2

编写了一个应用程序

该应用及其所有功能可在以下模拟器上运行:iPhone 8,iPhone SE 2nd Gen,iPhone 11 Pro,iPhone 12,iPhone 12 Pro,和 iPhone 12 Mini

该问题出现在所有 iPad 上,iPhone 8 plus、iPhone 11、iPhone 11 Pro Max 和 iPhone 12 Pro Max。

我不确定该怎么做,正在考虑提交错误 report/TSI,但我想确保我的设计没有明显的问题。

下面是我的内容视图的结构。我删除了一些我认为是 ext运行eous 的东西,以试图简明地说明结构。我还附上了正确 运行 初始视图与失败视图的图像。Proper Opening Screen, Problem opening Screen。我还在真正的 iPhone SE 2nd gen 和 iPhone 8 上 运行 它并得到了相同的结果。 提前致谢。

struct ContentView: View {
//@State vars
    var body: some View {
        NavigationView{
            ZStack{
                Image("image")
                VStack{
                    Spacer()
                    HStack{
                        Text("text")
                            .bold()
                            .foregroundColor(.white)
                            .font(.largeTitle)
                        Image("image2")
                    }.offset(y:10)
                    Form {
                        Section(header: Text("INITILIZATION SETTINGS")){
                            TextField("t1", text: $t1)
                            TextField("t2", text: $t2)
                            Stepper(value: $s1, in: 1...240){
                                Text("s1: \(s1)").onChange(of: s1, perform: { value in
                                    playSound(sound: "sound1", volume: 0.3)
                                })
                            }
                        }
                    }.frame(minWidth: 0, idealWidth: 400, maxWidth:400, minHeight: 0, idealHeight: 100, maxHeight: 180, alignment: .center).border(Color.black, width: 7)
                    VStack()
                    {
                        NavigationLink(destination: otherView().onAppear{playSound(sound: "sound2")}, label: {
                            Text("label")
                        }).padding().background(Color.white).border(Color.black, width: 2).cornerRadius(3.0)

                        NavigationLink(destination: otherView2()) {
                            Text("label2").padding(5).background(Color.white).border(Color.black, width: 2).cornerRadius(3.0).offset(y:-5)
                        }
                    }
                    Spacer()
                }
            }
        }.navigationBarTitle("").navigationBarHidden(true)
    }
}

解决方案非常简单,只需设置即可。在此 Hacking With Swift 视频 [https://youtu.be/nA6Jo6YnL9g?t=1720][1].

中约 29 分钟回答

大屏幕 iOS 设备使用默认的 navigationView{} 设置自动将屏幕拆分为多个视图。我不知道黑屏是怎么回事,但这解决了问题 只需添加视图修饰符 .navigationViewStyle(StackNavigationViewStyle())

我想我会自己回答而不是删除 post 因为我在网上找到解决方案时遇到了很多麻烦!希望这会对某人有所帮助!