簡體   English   中英

強制一個 NavigationLink 到 SwiftUI 中的詳細視圖

[英]Force one NavigationLink to the detail view in SwiftUI

我在我的應用程序中有一個主(主要)細節設置,其中頂級 NavigationView go 中的大多數列表項到另一個子菜單項列表,with.isDetailLink(false),然后這些子菜單項導航到詳細視圖。 這一切都按預期工作。

我還嘗試在頂級列表中放入 NavigationLink 以進入我的設置頁面,我想將其強制進入詳細信息視圖。 這個鏈接沒有子菜單,所以我嘗試直接導航到它並 force.isDetailView(true)。 但是,這會導致視圖在上面的主要 window 中打開,但一開始是隱藏的。 詳細信息 window 只有一個后退按鈕,然后可以從菜單欄中彈出預期的視圖。

有沒有辦法強制只在詳細視圖中打開設置菜單項,基本上跳過一個導航級別?

謝謝!

這是我目前正在嘗試的簡化版本:

struct ContentView: View {
    var body: some View {

        NavigationView {
            List {
                NavigationLink(destination: SubMenu1()) {Text("MenuItem1")}
                    .isDetailLink(false)
                
                NavigationLink(destination: SubMenu2()) {Text("MenuItem2")}
                    .isDetailLink(false)
                
                NavigationLink(destination: SubMenu3()) {Text("MenuItem3")})
                    .isDetailLink(false)
                
                NavigationLink(destination: SettingsView()) {Text("Settings")}
                    .isDetailLink(true)
            }
        }

    }
}



struct SubMenu: View {
    var body: some View {
     
        List {
            ForEach(menuItems, id: \.self) { item in
                NavigationLink(destination: DetailView(item)) {
                    Text(item)
                }
            }
        }
    }
}

更新我拍了一些截圖來說明這個問題:

頂級導航視圖: 頂級導航視圖

選擇其中一個子菜單,and.isDetailView(false)。 這工作正常: 選擇其中一個子菜單,並使用 .isDetailView(false)。這工作正常

設置沒有像其他菜單那樣的子菜單,所以我希望它直接在右側打開。 相反,它像這樣打開,並且只有在按下后退按鈕時才會顯示: 設置視圖 在此處輸入圖像描述

嘿,我看過你的截圖。 我認為您在“設置”中使用了 NavigationView 2 次。 請刪除其中任何一個,它應該可以正常工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM