首页 > 解决方案 > 在 SwiftUI 的 SplitView 中导航到 master 而不是 detail

问题描述

我的 iPad 就绪应用程序中有一个拆分视图:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List {
                NavigationLink("Show the slave view HERE", destination: SlaveView())
                    .navigationBarTitle("Master view")
            }

            Text("Detail view")
                .navigationBarTitle("DO NOT show the slave view here")
        }
    }
}

所以我喜欢SlaveView在列表本身中打开视图,而不是在详细视图中。我尝试在 中设置另一个NavigationViewSlave下面还有一个文本,同时在两个和每个上都设置了所有s navigationViewStyle,但没有运气。MasterSlave

这是您可以构建的最简单的从视图:

struct SlaveView: View {
    var body: some View {
        List {
            NavigationLink("Sub Detail view", destination: Text("Sub Detail view"))
        }
        .navigationBarTitle("Slave view")
    }
}

那么如何更改拆分视图的主(左)视图而不是细节(右)视图?

请注意,这是一个简化的可重现代码。实际项目使用更复杂的主从列表等。此外,我们不想丢失导航的东西,如过渡、标题转换、后退按钮等。

为了更清楚,我需要流程中的这种状态:

需要的步骤

标签: swiftuimaster-detailsplitviewios-navigationview

解决方案


只需修改不是详细信息的链接

演示

NavigationLink("Show the slave view HERE", destination: SlaveView())
    .isDetailLink(false)

推荐阅读