Normally in a UITableView, we assign the value for the cells in the cellForRowAtIndexPath method which is the delegate method of UITableView. In this case, if we use a CustomTableViewCell, we assign the values in cellForRowAtIndexPath as
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:self options:nil];
cell = customTableViewCell;
}
cell.label1.text = @"text1";
cell.label2.text = @"text2";
// Configure the cell...
return cell;
}
This way of using CustomCell is a usual one. The texts will be displayed on the labels of the cell, but I need some clarification in using CustomCell in another way. I have a method in MainViewController like the following
- (void)methodInMainViewConroller {
CustomCell *customCell = [[CustomCell alloc] init];
[customCell methodInCustomCell];
[tableView reloadData];
}
and in CustomCell, I have the definition for the method as
- (void)methodInCustomCell {
self.label1.text = @"text1";
self.label2.text = @"text2";
}
Will this work? Will the text be displayed on the labels of the cell? Actually it doesn’t work for me. Anyone help me to make this work perfectly. Thanks in advance.
You can try this
UPDATE: What I’ve just realized is that once you scroll the table view your labels will be reset to previous values. It might not work this way, but give it a try.