正确的方式继承UITableViewController?

时间:2012-03-28 08:09:09

标签: objective-c xcode uitableview storyboard

我的问题是我无法使用静态单元格从UITableViewController显示继承的类。我正在使用故事板轻松自定义单元格设置(我希望在UITableViewController中获得类似行为的设置应用程序)。但我需要将它嵌套在另一个显示自定义顶栏的UIViewController中(如导航栏面板)。所以当我加载具有这种结构的UITableViewController时:

#import <UIKit/UIKit.h>

@interface MyCoolTableVC : UITableViewController

@end

我没有遇到任何问题,我在故事板构建器中设置的所有自定义单元格在分组表视图中以正确的方式显示。但是当我使用UITableViewController的子类时:

#import <UIKit/UIKit.h>
#import "MyCoolTableVCSubclass.h"
@interface MyCoolTableVC : MyCoolTableVCSubclass

@end

我得到了这个结果:

enter image description here

显示tableView的外观,没有节和自定义单元格。 我用这段代码加载我的控制器,如果它有帮助:

UIViewController *vcToGo = nil;
UIStoryboard *storyBoard = [[UIStoryboard storyboardWithName:@"MyCoolStoryboard" bundle:nil] init];
vcToGo = [storyBoard instantiateViewControllerWithIdentifier:@"profileTable"];
[self.navigationController pushViewController:vcToGo animated:YES];

1 个答案:

答案 0 :(得分:2)

要使用静态单元格,必须将表格视图的数据源设置为UITableViewController子类,并且不得自行实现数据源方法

基础UITableViewController使用您在故事板中放置的内容,在其自己的cellForRowAtIndexPath等实现中为表视图提供所有内容。因此,如果您的数据源不从UITableViewController继承,它将无法填充表。

(注意 - 这是我假设基于我自己的实验发生的事情,我无法使用UITableViewController的内部结构)