In your tableView:cellForRowAtIndexPath: override, after you have accessed your cell with either dequeueCell... or by loading the nib file, you'll need to configure the retrieved cell with the customerID and checkinID and whatever other information is displayed. Typically your tableView:cellForRowAtIndexPath looks something like:
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
MyCell* cell = [tableView dequeueCellWithReusableIdentifier:@"MyCell"];
if(!cell)
{
cell = .... some other mechanism of loading cell from your nib file
}
// configure cell here
cell.customerID = ...
cell.checkinID = ...
return cell;
}
Note that the "load from nib file" part is greatly simplified if you use a storyboard as you can use dequeueCellWithReusableIdentifier:forIndexPath: and it will "always" return a cell for you.
The buttons should have their target and action set to the cell itself in your nib file. Now when the buttons are pressed, a method on the custom cell will be executed and you have access to the data passed in as part of your configuration above.
I'm not sure what your question is about reloadData. reloadData will cause all all data in the tableview (but not your controller) to be reloaded from the delegate and dataSource (presumably your controller) If you wish to force just a single section (or row) to be reloaded, there are also reloadSections... and reloadRows... variants.