如果嵌套了导航堆栈,则切换 NavigationSplitPane 的详细信息视图需要后退按钮

Switching detail view of NavigationSplitPane requires back button if nested Navigation Stack

提问人:trilogy 提问时间:9/6/2023 更新时间:9/6/2023 访问量:31

问:

我有一个使用 NavigationSplitView 的主菜单。当我在列表中选择其中一个项目时,详细信息侧将更改为相应的视图。这很好用。

如果您在子视图中选择一个项目,您将获得您单击的项目的详细信息部分,并带有一个后退按钮,可带您返回一级。

问题是,如果您已经在“详细信息视图”上,并且单击最左侧菜单中的主菜单项,则除非您单击子视图中的“后退按钮”,否则它不会更改父详细信息窗格。有没有办法让子视图瞬间更改,而不需要额外的“后退按钮”按下?

NavigationSplitView
{
      List(mainMenuItems, selection: $selectedMainMenuItem)
            { item in
                NavigationLink(value: item)
                {
                    Text(item.name)
                }
                
            }
} detail:
        {
            if let selectedMainMenuItem
            {
                switch(selectedMainMenuItem.name)
                {
                case "Link1":
                    SectionView1()
                case "Link2":
                    SectionView2()
                case "Link3":
                    SectionView3()
                default:
                    Text("")
                }
                
            }
            
        }
}
iOS Swift SwiftUI iPad

评论


答:

0赞 trilogy 9/6/2023 #1

找出了方法,看起来导航链接应该有一个参数和一个修饰符destination .isDetailLink(true)