原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC6%E8%8A%82list-insert-
本节课演示如何配合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)
} //添加一个方法,用来响应导航按钮的点击事件
}
![](https://img.haomeiwen.com/i2466108/4147725e9a290dd5.png)
网友评论