单击按钮时UITableView重新加载数据

时间:2012-04-28 13:22:55

标签: iphone xcode uitableview

当我按下按钮时,我想从uitableview重新加载数据。

例如: 如果我按下按钮1,那么我将显示id为1的数据,如果我按下按钮2,那么我将显示id为2的数据,并且之前的数据不会显示。

任何人都知道如何,我使用[tableview reloadData];不工作,如果我移动屏幕并返回到在tableview中显示数据的屏幕,会发生变化吗?

以前谢谢。

3 个答案:

答案 0 :(得分:0)

使用此代码。

- (void)viewDidAppear:(BOOL)animated 
{
    [super viewDidAppear:animated];
    [self.tableView reloadData];
}

如果点击按钮时触发,只需写下来

-(IBAaction) buttonclick
{
   [self.tableView reloadData];
   // your code...
}

答案 1 :(得分:0)

您不应该创建UILabel * labelMessage;每次应用程序调用tableView时的其他变量:cellForRowAtIndexPath:。而是尝试使用所有变量执行此操作:

if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        UILabel *labelMessage;
        labelMessage = [[UILabel alloc] initWithFrame:CGRectZero];
        labelMessage.backgroundColor = [UIColor clearColor];
        labelMessage.tag = 5;
        labelMessage.numberOfLines = 0;
        labelMessage.lineBreakMode = UILineBreakModeWordWrap;
        labelMessage.font = [UIFont systemFontOfSize:14.0];
        labelMessage.shadowOffset = CGSizeMake(0, 1);
        labelMessage.shadowColor = [UIColor whiteColor];
        labelMessage.backgroundColor = [UIColor clearColor];
        labelMessage.textColor = [UIColor colorWithRed:136.00/255.00 green:91.00/255.00 blue:14.00/255.00 alpha:1.0];

        UIView *message = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height)];
        [message addSubview:labelMessage];
}
UILabel *labelMessage = (UILabel *)[cell viewWithTag:3];
/* Set textMessage value here */
labelMessage.text = textMessage;
return cell;

答案 2 :(得分:0)