使用Swiftui在iPados应用程序中创建两个侧边栏

发布于 2025-02-12 17:47:51 字数 551 浏览 0 评论 0原文

我创建了一个带有NavigationView的侧边栏,默认情况下,该侧边栏是应用程序景观视图的左侧。但是我想在右侧有另一个。

NavigationView {
  List {
    Label("Pencil", systemImage: "pencil")
    Label("Paint", systemImage: "paintbrush.fill")
    Label("Erase", systemImage: "quote.opening")
      Label("Cutter", systemImage: "scissors")
      Label("Eyedropper", systemImage: "eyedropper.halffull")
      Label("Draw Line", systemImage: "line.diagonal")

  }
  .listStyle(SidebarListStyle())
}
    

“预览屏幕的图像”

I have created one sidebar with NavigationView, which by default appends to the left of the landscape view of application. However I wanted to have another on the right side.

NavigationView {
  List {
    Label("Pencil", systemImage: "pencil")
    Label("Paint", systemImage: "paintbrush.fill")
    Label("Erase", systemImage: "quote.opening")
      Label("Cutter", systemImage: "scissors")
      Label("Eyedropper", systemImage: "eyedropper.halffull")
      Label("Draw Line", systemImage: "line.diagonal")

  }
  .listStyle(SidebarListStyle())
}
    

Image of preview screen

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风苍溪 2025-02-19 17:47:51

这是一个简单的工作示例:

struct ContentView: View {
    var body: some View {
        NavigationView{
            
            TagView()
            
            Text("Default second View")
            Text("Default Third View")
        }
    }
}


struct TagView: View {
    let tags = ["Apple", "Google"]
    var body: some View {
        List{
            ForEach(tags, id: \.self) { name in
                NavigationLink {
                    ProductView(tag: name)
                } label: {
                    Text(name)
                }

            }
        }
    }
}


struct ProductView: View {
    var tag: String
    var products: [String] {
        if tag == "Apple" {
            return ["iPhone", "iPad", "MacBook"]
        } else {
            return ["resuable stuff"]
        }
    }
    var body: some View {
        List{
            ForEach(products, id: \.self) { name in
                NavigationLink {
                    DetailsView()
                } label: {
                    Text(name)
                }

            }
        }
    }
}


struct DetailsView: View {
    var body: some View {
        Text("Detailed explanation about product")
    }
}

”在此处输入图像描述”

Here's a simple working example made with SwiftUI:

struct ContentView: View {
    var body: some View {
        NavigationView{
            
            TagView()
            
            Text("Default second View")
            Text("Default Third View")
        }
    }
}


struct TagView: View {
    let tags = ["Apple", "Google"]
    var body: some View {
        List{
            ForEach(tags, id: \.self) { name in
                NavigationLink {
                    ProductView(tag: name)
                } label: {
                    Text(name)
                }

            }
        }
    }
}


struct ProductView: View {
    var tag: String
    var products: [String] {
        if tag == "Apple" {
            return ["iPhone", "iPad", "MacBook"]
        } else {
            return ["resuable stuff"]
        }
    }
    var body: some View {
        List{
            ForEach(products, id: \.self) { name in
                NavigationLink {
                    DetailsView()
                } label: {
                    Text(name)
                }

            }
        }
    }
}


struct DetailsView: View {
    var body: some View {
        Text("Detailed explanation about product")
    }
}

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文