Ios SwiftUI:iPad上不需要的分割视图

Ios SwiftUI:iPad上不需要的分割视图,ios,swift,swiftui,xcode11,Ios,Swift,Swiftui,Xcode11,问题:焊盘上的视图显示为不需要的分割视图 我当前的设置是: Catalina OSXβ5+ Xcode 11 Beta 5 以下是我使用的代码,带有导航视图和导航标题: 导入快捷界面 结构快捷视图:视图{ var body:一些观点{ 导航视图{ 文本(“搜索”) .navigationBarTitle(文本(“搜索”)) } } } #如果调试 结构快捷视图\u预览:预览提供程序{ 静态var预览:一些视图{ 快捷视图() } } #恩迪夫 当在iPad上模拟(物理设备和预览)而不是全屏视图

问题:焊盘上的视图显示为不需要的分割视图

我当前的设置是: Catalina OSXβ5+ Xcode 11 Beta 5

以下是我使用的代码,带有导航视图和导航标题:

导入快捷界面
结构快捷视图:视图{
var body:一些观点{
导航视图{
文本(“搜索”)
.navigationBarTitle(文本(“搜索”))
}
}
}
#如果调试
结构快捷视图\u预览:预览提供程序{
静态var预览:一些视图{
快捷视图()
}
}
#恩迪夫
当在iPad上模拟(物理设备和预览)而不是全屏视图时,我得到了以下分屏视图:

import SwiftUI

struct SwiftUIView: View {
    var body: some View {
        Text("Hello World!")
    }
}

#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
#endif

如果我只有一个视图,没有NavigationView,我会得到一个全屏视图:

import SwiftUI

struct SwiftUIView: View {
    var body: some View {
        Text("Hello World!")
    }
}

#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
#endif


如何在iPad上制作NavigationView全屏(而不是分屏)?

您可以将
.navigationViewStyle(StackNavigationViewStyle())
修改器应用于NavigationView

... 
    NavigationView {
        Text("Hello world!")
    }
    .navigationViewStyle(StackNavigationViewStyle())
...
编辑:下面,我回答Alexandre评论中的问题:

  • 为什么完整视图不是iPad的默认设置?这只是苹果做出的选择

  • 为什么这个修改器在NavigationView闭包之外,而导航标题在里面。。。也许这可以澄清:


    • 要在iPad上使用此拆分样式,但在iPhone上删除此拆分样式,请执行以下操作:

          extension View{
          func phoneOnlyStackNavigationView() ->some View{
      
              if UIDevice.current.userInterfaceIdiom == .phone{
                  return AnyView(self.navigationViewStyle(StackNavigationViewStyle()))
              }else{
                  return AnyView(self)
              }
          }
      }
      

      太好了,谢谢你,伙计!我感到困惑的是:-为什么完整视图不是iPad的默认设置。-为什么这个修改器在NavigationView闭包之外,而导航标题在里面。。。再次感谢!:)有没有办法动态更改StackNavigationViewStyle?我想可以从
      column1->column2->全屏
      @SimonBachmann进行导航,我想这是可能的,当我有时间的时候,我会想办法让你知道。在macOS上不可用,有人知道该怎么做吗?默认情况下,iPad navigationViewStyle不是Stack,但iPhone默认navigationViewStyle是Stack。它是自动的。不完全是,例如在iPhone XR和11上,默认的navigationViewStyle是DoubleColumn。这个代码片段实质上是在这些类的iPhone上强制使用堆栈样式。这可能会让我发疯,但我该在哪里调用这个函数呢?