SwiftUI—如何往一个List列表里插入新的记录

简介: SwiftUI—如何往一个List列表里插入新的记录

本节课演示如何配合NavigationView导航视图,往一个List列表里插入新的纪录。


示例代码:


struct ContentView : View {
    @State var languages = ["Objective-C", "Swift", "Flutter"] //列表数据源
    var body: some View {
        NavigationView { //添加一个导航视图,导航视图的功能类似于UINavigationController,主要用于多个视图之间的跳转
            List { //用于演示往这个列表里插入新的记录
                ForEach(languages, id:\.self) { language in //添加一个循环语句,对数组进行遍历操作
                    Text(language) //使用文本视图显示数组里的元素
                }.onInsert(of: ["demo"], perform: { (offset, message) in
                    print(offset) //用来实现往数组里添加新的元素
                })
            }
            .navigationBarTitle(Text("Edit Row"), displayMode: .large) //设置导航栏的标题文字,从预览窗口可以看出,导航栏的标题文字位于屏幕的左上角
            .navigationBarItems(trailing: EditButton()) //添加一个导航按钮编辑按钮,导航按钮位于导航栏的右侧
/*
.navigationBarItems(trailing: Button(action: addItem, label: {
                Text("Add")
            }))//添加一个导航按钮,导航按钮位于导航栏的右侧。当点击导航按钮时,执行addItem方法*/
        }.padding()
    }
//    func addItem() {
//        languages.append("C++")
//    }
    func insertItem(to offsets: Int, message : [NSItemProvider]) {
        languages.insert(message[0].description, at: offsets)
    } //添加一个方法,用来响应导航按钮的点击事件
}


2466108-4147725e9a290dd5.webp.jpg


目录
相关文章
|
11天前
|
XML 存储 JavaScript
DOM 节点列表(Node List)
XML DOM允许访问XML文档的每个节点,提供三种访问方法:getElementsByTagName()、循环遍历和导航节点关系。getElementsByTagName()返回一个节点列表,类似于数组,可用于获取特定标签名的节点。例如,加载"books.xml"后,`xmlDoc.getElementsByTagName("title")`会获取所有<title>元素,存储在变量x中。通过索引如x[2]可访问第三个<title>元素,注意索引从0开始。后续章节将进一步探讨节点列表(Node List)。
|
2天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,允许遍历和处理节点。例如,加载"books.xml"到`xmlDoc`,通过`getElementsByTagName("title")`获取所有标题节点,然后使用循环输出每个<title>元素的文本内容。
|
7天前
|
XML 数据格式
节点列表长度(Node List Length)
`NodeList`对象自动更新,其`length`属性表示列表中节点数量。例如,加载"books.xml"后,`getElementsByTagName('title').length`返回`4`。此属性可用来遍历列表,如示例所示,遍历所有`<title>`元素并打印其文本内容:Everyday Italian, Harry Potter, XQuery Kick Start, Learning XML。
|
7天前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
8天前
|
XML 数据格式
节点列表长度(Node List Length)
`Node List`对象自动更新,其`length`属性表示列表中节点数量。在给定示例中,代码加载"books.xml",并利用`getElementsByTagName('title')`获取<title>元素的数量,结果为4。`length`也可用于遍历列表,如示例所示,遍历并打印所有<title>元素的文本内容:Everyday Italian, Harry Potter, XQuery Kick Start, Learning XML。
|
11天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,例如在XML文档中,通过`getElementsByTagName()`获取的所有`<title>`元素的数量。可以遍历这个列表,如示例所示,使用`for`循环访问并输出每个节点的文本值。在提供的实例中,代码加载"books.xml",然后获取并打印所有<title>元素的子节点值。
|
20天前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
26 0
|
24天前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
12 0
|
27天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
1月前
|
Python
python教程:二维列表(list)初始化
python教程:二维列表(list)初始化
10 0