本节课演示如何配合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) } //添加一个方法,用来响应导航按钮的点击事件 }