UIViewController中的UITableView - 数据无法加载

时间:2013-08-27 08:45:00

标签: objective-c xcode uitableview uiviewcontroller

我知道www周围有几个帖子,但遗憾的是我没有得到tableView加载。 这是我的代码:

.h文件

@interface ViewControllerSzenenLichter : UIViewController<UITableViewDelegate, UITableViewDataSource>{
 IBOutlet UITableView *tableView;
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@end

我将IBOutlet与故事板中的tableview连接

.m文件

@interface ViewControllerSzenenLichter ()
@end
@implementation ViewControllerSzenenLichter
@synthesize tableView;

代码中的某处我尝试执行

[self.tableView reloadData]

执行(由断点检查)

但是从不调用方法numberOfRowsInSection或numberOfSectionsInTableView!

如前所述,我在网上发现了很多教程,但我无法解决问题。

感谢

5 个答案:

答案 0 :(得分:0)

您的孩子tableView基本上是您父母tableView的一个单元格。

因此,除非您重新加载父tableView,否则单元格不会更新,因此不会绘制子tableView

[childTableView reloadData];
[parentTableView reloadData];

编辑: @Desdenova是对的。确保将delegatedata source设置为self或管理表格的任何类。

答案 1 :(得分:0)

在故事板中右键单击表格,您将看到数据源并委托作为前两个选项。将两者连接到视图控制器(与插座连接相同)并再次运行。

最终的表连接将是这样的

enter image description here

答案 2 :(得分:0)

看来,你重新加载数据时连接一个IBOutlet并使用另一个:你有两个ivars tableView(你手工创建它)和_tableView(创建编译器和@property (nonatomic, retain) IBOutlet UITableView *tableView;链接) ,我现在不知道哪一个将在InterfaceBuilder中显示为文件所有者的TableView属性。尝试删除IBOutlet UITableView *tableView; ivar并重新连接IB中的表

答案 3 :(得分:0)

首先,确保在xib文件或表的实现文件中设置委托。如果仍然无法正常工作,请检查您要重新加载表的代码。如果主线程忙于执行其他操作,则不会调用任何UITableView的委托方法。所以当代码完成后,重新加载tableview。

答案 4 :(得分:0)

通过委托和数据源将TableView连接到文件所有者......

我认为您的问题将得到解决。这是你的击球手理解的图片......

Connecting your TableView to the File's Owner