我有一个视图控制器MainVC,它包含一个视图,我想在各个表之间切换。我有一个名为InfoVC的“抽象”类,它扩展了UITableViewController并包含几个必须重写的方法,否则它们会引发异常。最后,我有几个扩展InfoVC并在InfoVC中实现“抽象”方法的类,以及覆盖tableView的numberOfRowsInSection和cellForRowAtIndexPath的方法。
这是我在MainVC中加载表的方法。在这种情况下,TemperatureInfoVC扩展InfoVC,self.subVC的类型为InfoVC,switchView是MainVC中的视图:
TemperatureInfoVC *sVC = [[TemperatureInfoVC alloc] initWithStyle:UITableViewStylePlain];
self.subVC = sVC;
[sVC release];
[switchView insertSubview:self.subVC.view atIndex:0];
我的问题是表总是加载空的。从设置断点,我可以看到正在调用TemperatureInfoVC的numberOfRowsInSection,但是没有调用TemperatureInfoVC或InfoVC的cellForRowAtIndexPath。但是,如果我将上面代码中的第一行更改为:
InfoVC *sVC = [[InfoVC alloc] initWithStyle:UITableViewStylePlain];
然后正确调用InfoVC的numberOfRowsInSection和cellForRowAtIndexPath。有谁知道为什么没有调用TemperatureInfoVC的cellForRowAtIndexPath?
答案 0 :(得分:0)
我假设您没有设置委托(UITableViewDelegate)和数据源(UITableViewDatasource)。通常委托和数据源实现都在自定义UITableViewController中,所以(如果没有在IB中连接),需要在某处:
tableView.delegate = self;
tableView.dataSource = self;
通常位于-loadView
或-viewDidLoad:
答案 1 :(得分:0)