点击按钮时 UITableView 重新加载数据
Posted
技术标签:
【中文标题】点击按钮时 UITableView 重新加载数据【英文标题】:UITableView reload data when click button 【发布时间】:2012-04-28 13:22:55 【问题描述】:当我按下按钮时,我想从 uitableview 重新加载数据。
示例: 如果我按下按钮 1,那么我将呈现 id 为 1 的数据,如果我按下按钮 2,我将呈现 id 为 2 的数据,并且不显示之前的数据。
任何人都知道,我使用 [tableview reloadData];不工作,如果我移动屏幕并返回到在 tableview 中显示数据的屏幕会发生变化?
谢谢之前。
【问题讨论】:
您应该在重新加载 tableView 之前更改数组中的数据。 【参考方案1】:点击此链接,或许会对您有所帮助。
***.com/questions/7290340/xcode-tableview-showing-to-different-arrays-one-at-a-time-problem
【讨论】:
【参考方案2】:使用此代码。
- (void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
[self.tableView reloadData];
如果你点击按钮时触发,也只需写下这个
-(IBAaction) buttonclick
[self.tableView reloadData];
// your code...
【讨论】:
我看过你的代码,但是在 cellForRowAtIndexPath 中你是如何检查要加载哪个表的。我的意思是你是如何得到按钮 1 或按钮 2 被选中的? 不同之处在于可变消息,其数据来自一个查询,该查询根据按下我的按钮而有所不同。 [[[self AppDelegate] chatDB] closeLog]; [[[self AppDelegate] chatDB] getChat: buddyName: YES];这是刷新变量message中数据的代码【参考方案3】:你不应该创建 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;
【讨论】:
以上是关于点击按钮时 UITableView 重新加载数据的主要内容,如果未能解决你的问题,请参考以下文章
Jerk当用户位于UITableView的底部时重新加载UITableView
重新加载包含 UITableView 的 UIViewController 时的 EXEC_BAD_ACCESS
UITableView ReloadData 动画单元格 UI