我需要指出我是新手,并从一些教程和内容构建我的子类。
首先,这是我尝试重新加载数据时遇到的错误消息。 我正在用[self.tableView reloadData]重新加载它。
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "MainView" nib but didn't get a UITableView.'
好的,问题很明显。视图(我的nib文件)没有任何tableView连接到文件所有者。这就是我试图解决的问题。我试图在我的子类中添加一个IBOutlet,并在那里设置tableView-property。
(我的tableView-subclass继承自UITableView,只是为了清除)
这是我的 init-code:
- (id)initWithStyle:(UITableViewStyle)style {
if ((self = [super initWithStyle:style])){
RadioTable *aTableView = [[RadioTable alloc] initWithFrame:self.tableView.frame style:style];
[aTableView setDelegate:self];
[aTableView setDataSource:self];
[aTableView setSwipeDelegate:self];
[aTableView setRowHeight:54];
[self setTableView:aTableView];
[self.tableView setScrollEnabled:NO];
[self.tableView setRowHeight:80];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[self.tableView setSeparatorColor:[UIColor lightGrayColor]];
[aTableView release];
}
return self;
}
当我启动应用程序时,tableView工作正常,它可以完美。但是当我尝试重新加载时,问题就出现了。
答案 0 :(得分:2)
我不确定这是否能解决您的问题,但不要在其init方法中创建视图控制器的视图。而是覆盖loadView
并在该方法中创建表视图。并且不仅将表分配给tableView
属性,还分配给视图控制器的view
属性。
有关详细信息,请参阅loadView
和viewDidLoad
的文档。