我在UIViewController中使用UITableView ..我正在使用以下委托方法.....
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
一旦我加载视图,我发现所有代表都被调用了.....但我需要在按钮单击中调用这些方法.....
我试过这种方式....
[self tableView:table numberOfRowsInSection:rows];
[self tableView:table cellForRowAtIndexPath:path];
我发现这些方法已被调用,但没有任何反应(这些代表中的代码不起作用)....我不知道为什么???任何建议???
答案 0 :(得分:0)
在按钮点击功能中编写代码,它将调用tableview的所有代表
[self.tableView reloadData];
或解决方案的完整代码是: -
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
customCell *cell = [[customCell alloc]init];
if (cell == nil) {
cell = [[[customCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
NSArray *topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];
cell = (customCell *)[topLevelObjects objectAtIndex:0];
int count=0;
for(id currentObject in topLevelObjects)
{
count++;
if([currentObject isKindOfClass:[customCell class]])
{
cell= (customCell *)currentObject;
UILabel *sName = (UILabel *)[cell.contentView viewWithTag:1];
//Checking the flag that is set in the btnClicked event
if (flag) {
sName.hidden=YES;
}
else{
sName.text = [arrayResult objectAtIndex:indexPath.row];
}
}
}
return cell;
[topLevelObjects release];
[cell release];
}
-(IBAction) btnClicked:(id) sender{
flag=YES;
[self.tableView reloadData];
}
试试这个会起作用..