ReloadData不会触发cellForRowAtIndexPath

时间:2011-03-22 09:59:14

标签: objective-c ios uitableview tableview reloaddata

我知道这已被一遍又一遍地问过。我已经尝试了所有给定的解决方案,但它仍然无效。我已将数据源和委托设置为我的表视图,并将其设置为我的指针。

这是我的代码:

- (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;
}

我在reloadData方法上调用了viewDidLoad:。问题是,它解雇了numberOfRowsInSection:方法,我得到的行数正确,但它没有触发此cellForRowAtIndexPath:方法。

任何解决方案?

3 个答案:

答案 0 :(得分:0)

使用此代码:

urtableview.delegate = self;
urtableview.datasource = self;

在代码中声明resultsoap数组后。

答案 1 :(得分:0)

当表视图数据源数组“resultsoap”为空时,必须是调用表的重载方法。     确保数据源数组不为空,并检查数组是否已保存对象。

因为如果numberOfRowsInSection返回0,则可能不会调用cellForRowAtIndexPath。     这必须是你的情况。

答案 2 :(得分:-3)

请在合适的方法中添加Bellow Code。

如果您使用简单控制器和添加表视图而不是

在你的Header File .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。 In My case Its getclientTable.