SwiftUI—点击列表不同的选项进入不同的详情页面

简介: SwiftUI—点击列表不同的选项进入不同的详情页面

我们经常遇到这样的应用场景,通过点击列表不同的选项,进入不同的详情页面,本节课就来实现这样的效果。


示例代码:


import SwiftUI
struct InfoModel : Hashable { //定义一个遵循Hashable协议的结构体,作为页面跳转时所需要传递的数据的类型,当类型遵循该协议时,它的实例会拥有哈希值,通过哈希值可以判断类型的两个实例是否相同
    var description : String //图片的描述文字
    var pictureName : String //图片名称
}
struct ContentView : View {
    var messages : [InfoModel] //列表的数据源
    var body: some View {
        return NavigationView{
            List{
                ForEach(messages, id: \.self) { message in //根据数组的索引,创建导航按钮,并设置导航按钮的目标视图为自定义的DetailView
                    NavigationLink(destination: DetailView(imageName: message.pictureName)) {
                        Text(message.description)
                    }
                }
            }.navigationBarTitle("Picture List")
        }
    }
}
struct DetailView : View { //定义一个遵循View协议的结构体,作为导航的目标页面
    var imageName : String //表示需要显示的图片的名称
    var body: some View{
        Image(imageName)
    }
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        let model1 = InfoModel(description: "A lady with a horse", pictureName: "Picture1")
        let model2 = InfoModel(description: "An African animal with a very long neck", pictureName: "Picture2")
        return ContentView(messages: [model1, model2])
    }
}
#endif


微信图片_20220523171555.png

目录
相关文章
|
JSON 前端开发 数据格式
bootstrap table表格的点击详情按钮操作
bootstrap table表格的点击详情按钮操作
111 1
|
5月前
|
JavaScript 前端开发
Vue实现Element UI框架的自定义输入框或下拉框在输入时对列表选项进行过滤,以及右键列表选项弹出菜单进行删除
本文介绍了如何在Vue框架结合Element UI库实现自定义输入框或下拉框,在输入时对列表选项进行过滤,并支持右键点击列表选项弹出菜单进行删除的功能。
122 0
|
8月前
页面添加信息,点击提交显示添加成功,但是.txt文件里面没有新增的数据
页面添加信息,点击提交显示添加成功,但是.txt文件里面没有新增的数据
44 0
|
前端开发
Bootstrap tab页签刷新加载不显示,只有点击其他标签后第一个才显示
Bootstrap tab页签刷新加载不显示,只有点击其他标签后第一个才显示
114 0
|
JavaScript
fastadmin如何在列表的操作中添加其他按钮
fastadmin如何在列表的操作中添加其他按钮
264 0
|
JavaScript
fastadmin如何自定义一个列表上的按钮。
fastadmin如何自定义一个列表上的按钮。
381 0
|
缓存
nuxt2:keepalive 列表页到详情,详情回到列表,列表恢复离开时的状态
nuxt2:keepalive 列表页到详情,详情回到列表,列表恢复离开时的状态
156 0
|
Python
pycharm 2020 版取消鼠标悬停显示说明文档的方法
pycharm 2020 版取消鼠标悬停显示说明文档的方法
158 0
SwiftUI—使用TabView包含和切换多个页面
SwiftUI—使用TabView包含和切换多个页面
963 0
SwiftUI—使用TabView包含和切换多个页面
|
JavaScript
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
439 0
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态