在ViewController上创建的自定义UITableView - 不显示任何数据

时间:2014-01-20 18:29:19

标签: ios objective-c uitableview

我有一个ViewController,它几乎没有文字和标签控制

根据在文本控件中输入的值,我创建(自定义)UITableView并将其附加到VwCtrl上,如下所示

myUITableViewClass *grid = [[myUITableViewClass alloc] initWithStyle:UITableViewStylePlain];
grid.view.frame = CGRectMake(20.f, 322.f, 280.f, 186.f);
[self.presentedViewController addChildViewController:grid];
[self.view addSubview:grid.view];

在运行时,我能够看到网格已创建 - 没有数据显示!

我已经检查了方法cellForRowAtIndexPath中的数据 - 没问题。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                  reuseIdentifier:simpleTableIdentifier];
    //NSLog (@"Cell created");
}

NSLog (@"%@", [object objectForKey:@"ID"]) ;
cell.textLabel.text = [object objectForKey:@"ID"];
cell.detailTextLabel.text = [object objectForKey:@"Name"];

return cell;

2 个答案:

答案 0 :(得分:0)

您需要分配tableview的dataSource才能调用tableview:cellForRowAtIndexPath:

myUITableViewClass *grid = [[myUITableViewClass alloc] initWithStyle:UITableViewStylePlain];
grid.view.frame = CGRectMake(20.f, 322.f, 280.f, 186.f);
grid.dataSource = self;
grid.delegate = self;
[self.presentedViewController addChildViewController:grid];
[self.view addSubview:grid.view];

如果还没有,还需要实现其他必需的UITableViewDataSource方法tableView:numberOfRowsInSection:

此外,如果您想实现任何UITableViewDelegate方法,例如tableView:didDeselectRowAtIndexPath:,您需要设置tableview的委托,如上所示。

答案 1 :(得分:0)

你有没有把自己定位为你的代表和数据源?

myUITableViewClass *grid = [[myUITableViewClass alloc] initWithStyle:UITableViewStylePlain];
grid.view.frame = CGRectMake(20.f, 322.f, 280.f, 186.f);
grid.delegate = self;
grid.delegate= self;
[self.presentedViewController addChildViewController:grid];
[self.view addSubview:grid.view];