You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iPadOS下NavigationView选中主列表项后返回根视图问题

当选中NavigationView主视图中的项目时,主视图会返回至根视图,但仅在之前选中过根列表中的项目时才会出现此问题。

测试环境:iPadOS

复现步骤

  • 选中主列表中isFolder = false的项目
  • 接着选中主列表中isFolder = true的项目
  • 然后选中新主列表中的任意项目

实际现象

  • 项目显示在详情视图中,但主视图返回至根视图

预期结果

  • 项目显示在详情视图中,且主视图停留在选中项目所在的列表

复现代码

import SwiftUI
import PlaygroundSupport
import Observation

struct ListItem {
    var title: String
    var isFolder: Bool
}

struct TabbarTest: View {
    
    var items: [ListItem]
    
    var body: some View {
        NavigationView {
            List {
                ForEach(items, id: \.title) { item in
                    if item.isFolder {
                        NavigationLink(destination: OtherList(items: [
                            ListItem(title: "11", isFolder: true),
                            ListItem(title: "12", isFolder: false),
                            ListItem(title: "13", isFolder: false),
                            ListItem(title: "14", isFolder: false),
                            ListItem(title: "15", isFolder: false),
                            ListItem(title: "16", isFolder: false),
                            ListItem(title: "17", isFolder: false),
                            ListItem(title: "18", isFolder: false),
                            ListItem(title: "19", isFolder: false),
                            ListItem(title: "20", isFolder: false)
                        ])) {
                            Text(item.title)
                        }.isDetailLink(false)
                    } else {
                        NavigationLink(destination: Text(item.title)) {
                            Text(item.title)
                        }.isDetailLink(true)
                    }
                }
            }
            .listStyle(.plain)
        }
    }
}

struct OtherList: View {
    
    var items: [ListItem]
    
    var body: some View {
        List {
            ForEach(items, id: \.title) { item in
                if item.isFolder {
                    NavigationLink(destination: OtherList(items: [
                        ListItem(title: "11", isFolder: true),
                        ListItem(title: "12", isFolder: false),
                        ListItem(title: "13", isFolder: false),
                        ListItem(title: "14", isFolder: false),
                        ListItem(title: "15", isFolder: false),
                        ListItem(title: "16", isFolder: false),
                        ListItem(title: "17", isFolder: false),
                        ListItem(title: "18", isFolder: false),
                        ListItem(title: "19", isFolder: false),
                        ListItem(title: "20", isFolder: false)
                    ])) {
                        Text(item.title)
                    }.isDetailLink(false)
                } else {
                    NavigationLink(destination: Text(item.title)) {
                        Text(item.title)
                    }.isDetailLink(true)
                }
            }
        }
    }
    
}

PlaygroundPage.current.setLiveView(TabbarTest(items: [
    ListItem(title: "One", isFolder: true),
    ListItem(title: "Two", isFolder: false),
    ListItem(title: "Three", isFolder: false),
    ListItem(title: "Four", isFolder: false),
    ListItem(title: "Five", isFolder: false),
    ListItem(title: "Six", isFolder: false),
    ListItem(title: "Seven", isFolder: false),
    ListItem(title: "Eight", isFolder: false),
    ListItem(title: "Nine", isFolder: false),
    ListItem(title: "Ten", isFolder: false)
]))

内容的提问来源于stack exchange,提问作者Manuel Berghaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:12:32