ReloadData 不会触发 cellForRowAtIndexPath
Posted
技术标签:
【中文标题】ReloadData 不会触发 cellForRowAtIndexPath【英文标题】:ReloadData doesn't fire cellForRowAtIndexPath 【发布时间】:2011-03-22 09:59:14 【问题描述】:我知道这个问题已经被问了一遍又一遍。我已经尝试了所有给定的解决方案,但仍然没有用。我已将数据源和委托设置为我的表格视图,并将其设置为我的指针。
这是我的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
NSLog(@"%i", resultSoap.count);
return resultSoap.count;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
// Configure the cell.
NSString *cellValue = [resultSoap objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
NSLog(@"Celldisplay");
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
我在viewDidLoad:
方法上调用了reloadData
。问题是,它触发了numberOfRowsInSection:
方法,我得到了正确的行数,但它没有触发这个cellForRowAtIndexPath:
方法。
有什么办法吗?
【问题讨论】:
返回多少行?调试模式下,能看到resultSoap的内容吗? 【参考方案1】:使用此代码:
urtableview.delegate = self;
urtableview.datasource = self;
在代码中声明 resultsoap 数组之后。
【讨论】:
【参考方案2】:一定是表视图数据源数组"resultsoap"为空时调用了表的reload方法。 确保您的数据源数组不为空,并检查该数组是否保存了对象。
因为如果 numberOfRowsInSection
返回 0,则可能不会调用 cellForRowAtIndexPath
。
这一定是你的情况。
【讨论】:
【参考方案3】:请在您合适的方法中添加波纹管代码。
如果你使用简单控制器并添加表格视图而不是
在你的头文件.h中
#import <UIKit/UIKit.h>
@interface TaskAndTax : UIViewController<UITableViewDelegate, UITableViewDataSource>
IBOutlet UITableView *MyTableView;
@property (nonatomic, retain) UITableView *MyTableView;
@end
在你的 .m 文件中
@synthesize MyTableView;
-(void) viewWillAppear:(BOOL)animated
[MyTableView reloadData];
请在我们的例子中将 TableView 的 IBOutlet 连接到 XIB 文件中的 MyTableView 到 TableView。
【讨论】:
以上是关于ReloadData 不会触发 cellForRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Core Data container.performBackgroundTask() 之后不触发 tableView.reloadData()
UITableView reloadData - cellForRowAtIndexPath 未触发
collectionView使用reloadData和reloadItemsAtIndexPaths冲突
UIImagePickerController 关闭后 UICollectionView 不会 reloadData()