首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将tableview文本字段保存到自定义对象数组

的步骤如下:

  1. 创建一个自定义对象类,该类包含与tableview文本字段对应的属性。例如,如果tableview中的每一行都包含姓名和年龄两个字段,那么可以创建一个Person类,包含name和age属性。
  2. 在tableview的代理方法中,获取每一行的文本字段值,并创建一个Person对象,将文本字段值赋给对应的属性。
  3. 将创建的Person对象添加到一个可变数组中,以便后续保存所有的对象。
  4. 在需要保存的时机,将可变数组中的对象进行持久化操作,例如将其保存到本地数据库或者文件中。

下面是一个示例代码:

代码语言:swift
复制
// Person.swift
class Person {
    var name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

// ViewController.swift
import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    @IBOutlet weak var tableView: UITableView!
    
    var people: [Person] = []
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableView.dataSource = self
        tableView.delegate = self
    }
    
    // UITableViewDataSource methods
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10 // 假设tableview有10行
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomTableViewCell
        
        // 设置cell的文本字段
        
        return cell
    }
    
    // UITableViewDelegate methods
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell
        
        let name = cell.nameTextField.text ?? ""
        let age = Int(cell.ageTextField.text ?? "") ?? 0
        
        let person = Person(name: name, age: age)
        people.append(person)
    }
    
    // 保存数据
    func saveData() {
        // 将people数组进行持久化操作,例如保存到本地数据库或者文件中
    }
}

在上述示例代码中,我们创建了一个Person类来表示每一行的文本字段数据。在tableview的代理方法中,我们获取每一行的文本字段值,并创建一个Person对象,将其添加到people数组中。最后,我们可以在需要保存数据的时候调用saveData方法来将people数组进行持久化操作。

请注意,上述示例代码是使用Swift语言编写的,如果使用其他编程语言,可以根据语言特性进行相应的修改。此外,具体的持久化操作和腾讯云相关产品与链接地址与问题无关,因此不在此提供。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在iOS中怎样创建可展开的Table View?(下)

    shouldExpandAndShowSubRows = true } } } 一旦上面的标示取到了它的值和属性,来指示这个cell展开或是关闭,把这个cell的描述符集合保存到那个值里是我们的工作...真正的原因是因为我选择开始处理cell的类型,我继续在tableView的代理方法里修改,在里面,我添加一个else来处理没有展开cell的情况,然后我们检查点击cell的标识符的值.如果标识符等于...:cellForRowAtIndexPath: 函数里,我们必须让ViewController类实现自定义cell的代理方法.看这儿: func tableView(tableView: UITableView...cell.我们要动态地组成全名,一旦姓和名都输入了.我们需要指定包含文本框的cell的索引.最后我们会在顶级cell更新显示的文本(全名),并且会刷新tableView,如下代码: func textfieldTextWasChanged...(例如,cell描述列表保存到文件),然而,那已经超出了我们的目标;我们最开始所想的是实现一个可展开的tableView,根据需求显示或隐藏cell,以及我们最终所做的.我相信,在这篇教程中你会找到左右有用的信息

    1.5K30

    C++ Qt开发:QItemDelegate自定义代理组件

    此处我们实现对QTableView表格组件的自定义代理功能,例如默认情况下表格中的缺省代理就是一个编辑框,我们只能够在编辑框内输入数据,而有时我们想选择数据而不是输入,此时就需要重写编辑框实现选择的效果...,代理组件常用于个性化定制表格中的字段类型。...1.1 概述代理类代理类的作用是用来实现组件重写的,例如TableView中默认是可编辑的,之所以可编辑是因为Qt默认为我们重写了QLineEdit编辑框实现的,也可理解为组件嵌入到了表格中,实现了对表格的编辑功能...,保存到数据模型中void QWIntSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex...,如下图;而婚否字段将被重写成一个ComBoBox组件,这有助于让用户直接选择一个状态,如下图;完整案例下载

    83011

    在iOS中怎样创建可展开的Table View?(上)

    你可以注意到上面的tableview打开的时候有多种类型的cell.所有这些你都可以在启动项目里找到,可供你下载,还包括一些其他将要实现的东西.设计的所有自定义cell都在单独的xib文件中,同时一个自定义的.... primaryTitle:它是cell主标题上的文本,很多次都包含了应该被显示在一个cell上实际的值. secondaryTitle:它是cell子标题上的文本,或者是第二个标签的文本. cellIdentifier....在下面的部分,这个数组将会被用作tableView数据源的一部分....接下来,让我们实现一个新的自定义函数,负责从数组中加载文件内容.我们调用loadCellDescriptors()函数: func loadCellDescriptors() { if let...现在让我们实现这个新的函数吧.你可能猜到了,我们通过所有的cell描述和我们在上面添加的cell索引的2D数组,把"可见"属性设置为YES.显然,我们需要处理一个嵌套循环,但是却不难处理.下面是这个函数的实现

    1.8K50

    swift3.0 coreData的使用-日记本demo效果需求分析创建工程添加数据库改写Detail页面改写Master页面Demo地址

    - 主要功能:增、删、改、查 - 界面用默认的界面,detail页面改为`UITextView`可编辑 - 主页面进行 增、删、查操作 - 子页面进行 删、改、查操作 需求很简单,官方模板还添加了按时间排序的操作...选择语言和coredata.png 添加数据库 官方给数据库添加了一个时间戳字段,我们再添加一个内容字段就可以了 ?...添加字段.png 改写Detail页面 改成textview,读取数据库中的noteDetail内容字段 需要增加保存和删除操作 由于设置了detailItem:Event这个全局变量是由上一级传递过来的...timestamp = NSDate() //保存到数据库 self.saveData(context: context!)...并传递当前查询出来的数据对象 我这里是使用stroyboard ID来获取视窗 override func tableView(_ tableView: UITableView, didSelectRowAt

    63340

    iOS面试题梳理(三)

    因此,我们只能传数组或者字典,但是数组或者字典只有存入对象类型,而结构体并不是对象类型,我们只能通过对象放入结构作为属性来传过去了....对于多变的自定义Cell,这种重用机制会导致内容出错,为解决这种出错的方法,把原来的 UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier...SDWebImage原理 调用类别的方法: 从内存中(字典)找图片(当这个图片在本次程序加载过),找到直接使用; 从沙盒中找,找到直接使用,缓存到内存。 从网络上获取,使用,缓存到内存,缓存到沙盒。...在复制操作中,如果只是指针复制给新对象,那么底层的资源实际上仍然由两个实例在共享。...如何使用两个TableView产生联动:两个tableView的滚动事件禁止掉,最外层scrollView滚动时两个TableView跟着滚动,并且更改contentOffset,这样产生效果滚动的两个

    1.4K71

    动手写个 JSON-Model Mapping 库

    ,就调用另一个构造器,把这个对象赋值给实例属性 object ,否则就给object赋一个NSNull()。...别的当然还有一些内容,譬如自定义下标,实现各种协议(字符串字面量协议、判等协议、比较协议、打印协议等等),代码很优雅,但似乎没有我想要的东西。...var count = 0 var excerpt = "" } 发送网络请求(你可以使用 Alamore 或别的什么库,我这边是自己简单封装了一下 NSURLSession 直接用了),然后取得的数据先转化成...JSONModel(直接使用=>符号),保存到实例属性jsonModel中: getDataFromUrl(Constant.DemoAPI, method: .GET, parameter: nil...text = post.excerpt } return cell } override func tableView(tableView: UITableView, cellForRowAtIndexPath

    1.2K30

    iOS开发·KVC:字典转模型,防止因本地未定义字段(后台的字段与本地字符串名不一致)导致数据转换过程中的奔溃

    后台JSON数据中的字典转成本地的模型,我们一般选用部分优秀的第三方框架,如SBJSON、JSONKit、MJExtension、YYModel等。...现在,需要将这个plist字典数组转换成CustomerListModel模型数组,并在VC取值出来赋给表单元cell的模型数组,用于展示数据。...:(NSDictionary *)dict;{ return [[self alloc]initWithDict:dict]; } //类方法:实现字典转模型,返回模型对象数组 + (NSArray...,并声明模型对象数组属性: @property (nonatomic, strong) NSArray * customerListModelArr; 2).重写懒加载...,并在tableView的代理方法调取模型数组用于显示: #pragma mark - 懒加载模型数组 - (NSArray *)customerListModelArr

    1.5K20

    「死磕」Core Data——非标准数据类型的保存

    选择Transformable类型即可, 数组,字典 NSArray、NSMutableArray、NSDictionary、NSMutableDictionary也是遵守NSCoding的对象,也可以选择...NSData数据,转换回数组、字典对象。...property (nonatomic) UserGenderType userGender; 选择Transformable,然后重写get、set方法,进行转换……还是用上面的方法吧,比较简单:) 自定义对象...自定义对象,也有两种思路: 直接定义成xcdatamodeld文件中的一个实体,作为NSManagedObject类的子类,由CoreData直接保存; 如果不定义成实体,需要: 该自定义对象需要遵守...对象转换为自定义对象 HAEq *eq = [NSKeyedUnarchiver unarchiveObjectWithData:data]; return eq; } @end 所以,

    1K60
    领券