递归调用时,UITableView单元格为空

时间:2013-12-09 14:46:50

标签: ios uitableview recursion

我正在尝试使用递归表视图,但是当我单击任何单元格并出现第二个UITableView(由tableView创建:didSelectRowAtIndexPath :)时,只有空行没有任何文本。

有人可以帮忙吗?

@implementation RSTableViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        [self.tableView registerClass:[RSCell class] forCellReuseIdentifier:@"bbaCell"];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.array = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    RSTableViewController *rsTableView = [[RSTableViewController alloc] initWithStyle:UITableViewStylePlain];
    rsTableView.tableView.delegate = self;
    [self.navigationController pushViewController:rsTableView animated:TRUE];
    [tableView reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.array count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"bbaCell";
    RSCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    // Configure the cell...
    cell.label1.text = [self.array objectAtIndex:indexPath.row];
    cell.label2.text = [self.array objectAtIndex:indexPath.row];
    return cell;
}

@end

1 个答案:

答案 0 :(得分:0)

A。 [self.navigationController pushViewController:rsTableView animated:TRUE]错误,没有TRUE,只有YES

B。我觉得你做的事情非常错,但无论如何,你的方法应该如下:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath     *)indexPath
{
    RSTableViewController *rsTableView = [[RSTableViewController alloc] initWithStyle:UITableViewStylePlain];
    // each rs table view instance is it's own delegate and datasource
    rsTableView.tableView.delegate = rsTableView;
    // you forgot to add this line:
     rsTableView.tableView.dataSource = rsTableView;
    [self.navigationController pushViewController:rsTableView animated:YES];
    // what's this line for ?? the new ViewController will automatically call all the necessary methods. please remove it.
    [tableView reloadData];
}

请检查语法,其次,RSTableViewController基本ViewController是什么?是UITableViewController ?? 确保正确设置委托和数据源。