当子类导致崩溃时重新加载tableView

时间:2010-09-29 20:33:25

标签: iphone objective-c crash uitableview reloaddata

嘿伙计们!我有一些问题重新加载我的tableView。 我有tableView的子类,有一个名为 RadioTable 的类。我也有我的TableViewCells的子类,但这在这里并不重要。

我需要指出我是新手,并从一些教程和内容构建我的子类。

首先,这是我尝试重新加载数据时遇到的错误消息。 我正在用[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工作正常,它可以完美。但是当我尝试重新加载时,问题就出现了。

1 个答案:

答案 0 :(得分:2)

我不确定这是否能解决您的问题,但不要在其init方法中创建视图控制器的视图。而是覆盖loadView并在该方法中创建表视图。并且不仅将表分配给tableView属性,还分配给视图控制器的view属性。

有关详细信息,请参阅loadViewviewDidLoad的文档。