gpt4 book ai didi

swift - iPad上的SwiftUI导航-如何显示主列表

转载 作者:行者123 更新时间:2023-12-04 16:50:30 26 4
gpt4 key购买 nike

我的应用程序具有简单的导航需求

  • 列表 View (父对象)
  • 列表 View (子对象)
  • 详细信息 View (子对象)

  • 我具有此设置并可以在iPhone上运行,但是当我在iPad上以纵向模式运行该应用程序时,主列表始终处于隐藏状态。

    我在从第一个列表到第二个列表的导航链接上使用了 .isDetailLink(false),因此两个列表始终位于master列中。在iPad横向模式中,所有功能均按预期工作,但在纵向模式中,详细信息 View 将填充屏幕。我可以从屏幕左侧轻扫以显示列表,但我想向用户提供更多的清晰度。

    我想显示 或添加后退按钮来显示主/列表侧(类似于Apple Notes应用)。在iPhone上,默认情况下会显示“后退”按钮,但在纵向模式下的iPad上,它什么都没有。

    这就是我在iPhone上看到的
    enter image description here

    但这就是我在iPad上看到的
    enter image description here

    parent 名单
    struct ParentList: View {

    let firstList = ["Sample data 01", "Sample data 02", "Sample data 03", "Sample data 04", "Sample data 05"]

    var body: some View {
    NavigationView {
    List{
    ForEach(firstList, id: \.self) { item in
    NavigationLink(destination: ChildList()){

    Text(item)
    }
    .isDetailLink(false)

    }
    }
    }
    }
    }

    子 list
    struct ChildList: View {

    let secondList = ["More Sample data 01", "More Sample data 02", "More Sample data 03", "More Sample data 04", "More Sample data 05"]

    var body: some View {
    List{
    ForEach(secondList, id: \.self) { item in
    NavigationLink(destination: ChildDetail()){

    Text(item)

    }
    }
    }
    }
    }

    子项详细信息
    struct ChildDetail: View {

    var body: some View {
    Text("Child detail view")
    }

    }

    更新:截至2019年10月17日,我还没有找到一种方法来使其正常工作。我决定暂时使用 .navigationViewStyle(StackNavigationViewStyle())。有趣的是,它需要像普通修饰符一样位于导航 View 之外,而不是位于导航标题的内部。

    最佳答案

    纵向模式下,默认拆分 View 不起作用。将来可能会修复此问题,但当前的选项似乎是:
    (a)将第一个列表的导航 View 样式更改为.navigationViewStyle(StackNavigationViewStyle()),以便导航将像在iPhone上一样工作,并推送每个 View 。
    (b)将样式保留为默认样式,仅支持iPad横向
    (c)实现UIKit拆分 View Controller

    关于swift - iPad上的SwiftUI导航-如何显示主列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57888032/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com