【问题标题】:How do I create another unique view for each device?如何为每个设备创建另一个独特的视图?
【发布时间】:2021-10-22 04:29:34
【问题描述】:

当用户选择设备时如何创建另一个视图?对于每个设备,视图不会相同,因为给出的信息不会相同(自定义视图) 谢谢你让我走上正轨。

Canvas image

struct ContentView: View {
var body: some View {
    NavigationView {
    List(Ios, children: \.sousMenuIos) { item in
        HStack {
            Image(item.image)
                .resizable()
                .scaledToFit()
                .frame(width: 60, height: 60)
            Text(item.name)
                .font(.system(.title3, design: .rounded))
                .bold()
        }
  }
    .navigationTitle("Jailbreak")
   }
  }
 }
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
    ContentView()

【问题讨论】:

  • 不清楚你在问什么,这也不是一个可运行代码的最小示例。
  • 但是,我觉得这很清楚。我只想为列表中的每个设备打开一个特定视图
  • @GuillaumeCombot 哦,您的意思是导航到新视图(其中可能包含有关设备的更多信息)?如果是这样,您可能正在寻找NavigationLink顺便说一句:回复时使用@...,以便我收到通知
  • 只需在项目导航器中选择文件目标即可。您可以调用特定文件/查看相同的内容,Xcode 将根据可用于目标的文件选择正确的文件

标签: view swiftui navigationview


【解决方案1】:

您需要将列表标签包装在 NavigationLink 中,并将项目传递给您想要的服装视图。这是一个带有虚拟数据的工作示例。

struct ListItems: View {
var body: some View {
    NavigationView {
        List(iOS.previewData) { item in
            NavigationLink(destination: CostumView(text: item.name)){
                HStack {
                    Image(systemName: item.image)
                        .resizable()
                        .scaledToFit()
                        .frame(width: 60, height: 60)
                    Text(item.name)
                        .font(.system(.title3, design: .rounded))
                        .bold()
                }
            }
  }
    .navigationTitle("Jailbreak")
   }
  }
 }
struct CostumView: View {
    var text: String
    var body: some View{
        Text(text)
    }
}

struct ListItems_Previews: PreviewProvider {
    static var previews: some View {
        ListItems()
    }
}

struct iOS: Identifiable {
    var id = UUID()
    var image: String = ""
    var name: String
    
    static let previewData = [
    iOS(image: "phone", name: "iPhone 8"),
    iOS(image: "phone", name: "iPhone X")
    ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多