vivianaranha
vivianaranha

Reputation: 2781

UITableView with UITextField - keep the data even after user scrolls

I have a UITableView and it has bunch of UITableViewCells - These UITableViewCells have multiple UITextFields inside it.

Now every time I scroll up and down - and the UITableViewCells go out of the view - and comes back in whatever text I enter inside the UITextField disappears - What is the best way to make this work?

Upvotes: 5

Views: 3417

Answers (2)

Deepak Thakur
Deepak Thakur

Reputation: 3691

If you are adding a UITextField in a UITableViewCell, you need to take care of cell's state as the cell gets dequeued while scrolling.

You need to maintain a Dictionary to retain text in UITextField which is present in a UITableViewCell.

Refer my github repo for complete solution of having UITextField / UIButton state in a uitableviewcell.

Code was created in Swift 4 with XCode 9.4

Upvotes: 2

james
james

Reputation: 26271

create an NSMutableArray which at each position, holds an NSString object which matches each cell.

when you config + show each cell in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath, set the text of the UITextField to the string in the array at position indexPath.row.

when editing a UITextField, insert/update the NSString object at the current indexPath.row position in the array

Upvotes: 14

Related Questions