0

I am trying to pass tableview cell data on editing did end to a button. I have been using tags but I keep getting an error nil found. I think this is do to the amount of rows I have (over 500). Anyone know the best way to do this?

The Code below is what I use (tags). It only crashes (returns nil) when I have multiple tableviewcell rows and have to scroll off the page.

func numberOfSections(in tableView: UITableView) -> Int { return 1 }
        
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return inventoryArray.count }

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let code : String = (inventoryArray[indexPath.row] as AnyObject).value(forKey: "code") as! String
    
let name : String = (inventoryArray[indexPath.row] as AnyObject).value(forKey: "name") as! String

let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! InventoryCell


cell.unitField.tag = indexPath.row

cell.unitField.addTarget(self, action: #selector(Inventory.submit(_:)), for: UIControl.Event.editingDidEnd)


return cell as InventoryCell
  
}

...

@IBAction func submit(_ sender: UIButton) {

let tag = sender.tag

let cell = tableView.cellForRow(at: IndexPath.init(row: tag, section: 0)) as! InventoryCell

var unitCount = Int(cell.unitField.text!)!

cell.count.text = String (unitCount)

}
BTR199234
  • 3
  • 2

0 Answers0