【发布时间】:2015-07-10 03:32:12
【问题描述】:
我经常遇到这个问题,表格视图要么第一次不加载单元格,要么显示临时标签。在这两种情况下,当第二次加载表格时(通过另一个按钮,我强制它重新加载或通过转到应用程序中的上一个视图并返回表格),一切都会按预期显示。
我使用[table reloadData] 在viewDidAppear: 方法中重新加载表,因为它在viewDidAppear: 方法中不起作用,在另一种情况下,我将它放在按钮操作中。
我也在使用这个方法来设置我放在故事板中的单元格的标签:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [contactsTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
UILabel *label = (UILabel *)[cell viewWithTag:1001];
label.text = [Array3 objectAtIndex:indexPath.row];
return cell;
}
编辑
我在实现下面声明数组,如: NSMutableArray * Array3; 之后在 ViewDidLoad 方法中声明数组的其余部分: Array3 = [NSMutableArray arrayWithObjects: nil]; 然后我通过调用 ViewDidLoad 方法中的函数来加载数组中的元素,以用元素填充数组。
编辑 2 显示更多我如何填充数组 - (void)viewDidLoad {
[super viewDidLoad];
Array3 = [NSMutableArray arrayWithObjects: nil];
[self loadArray];
}
- (void) loadArray
//populate array in here.
// I use the add object method
// [Array3 addobject:object];
{
【问题讨论】:
-
您在哪里加载/定义/填充 Array3?您的描述向我表明数据源正在异步填充,并且在您第一次显示视图控制器时还没有准备好。
-
我在 .m 文件中的实现下面定义它。你知道我该如何解决吗?
-
我没办法告诉你,因为你没有表现出来。 :-) 该数组如何获取元素?
-
请检查句子 Im using [table reloadData] to reload the table in the viewDidAppear: method 因为它在 viewDidAppear: 方法中不起作用,在另一种情况下我把它放在按钮操作。,特别是您的
viewDidAppear评论。 -
“然后我通过调用 ViewDidLoad 方法中的函数来加载数组中的元素,以用元素填充数组。”这并没有告诉任何人您 如何 加载数组的详细信息(例如它是否是同步的)。显示您在 viewDidLoad 中调用的方法。显示您的 viewDidLoad 方法,以便我们可以看到 在哪里您调用了加载数组的方法。
标签: ios uitableview cell reloaddata