0

我最近将我的 .xib 文件转换为 Storyboards 并决定以编程方式将 a 添加UITableView到我ViewController的情节提要中。

我用这段代码来完成这个:

// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {

    UITableView *table;
}



// ViewController.m
#import "ViewController.h"

@interface ViewController (PrivateStuff)
// unimportant code...
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    table = [[UITableView alloc] initWithFrame:self.view.bounds];
    table.delegate = self;
    table.dataSource = self;
    [self.view addSubview:table];
}

不幸的是,每当我尝试运行它时,Xcode 都会给我这个消息......

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "ViewController" nib but didn't get a UITableView.'

......这没有任何意义。我有所有需要按照正确顺序连接的东西,UITableView尽管代码相同,但我所有其他带有 s 的视图都没有问题。

我能做些什么来解决这个问题?提前致谢。

4

1 回答 1

0

我同意@rdelmar-Xcode 的说法,即在[tableviewcontroller loadView]调用期间加载了一个 nib,这意味着您的代码中某处有一个 tableviewcontroller ......但这也意味着您创建的 nib 仍然以某种方式链接到您的视图控制器。您可能需要查看 Xcode 中实用程序下的连接检查器,看看您的 nib 是否仍然存在任何持久链接并将它们删除。否则,只要您在cellForRowAtIndexPath方法中提供自定义或通用的 TableViewCell,上面的代码应该可以工作

于 2013-11-14T01:32:41.927 回答