笔尖,但没有得到一个UITableView

我的应用程序适用于iOS 5.1,但对于iOS 6模拟器,我得到以下错误。

终止应用程序由于未捕获的exception'NSInternalInconsistencyException',原因:' – [UITableViewController loadView]加载“MainListViewController”的笔尖,但没有得到一个UITableView。

我是UITableViewController ,我不想改变它。

tableview以编程方式创build,有一个虚拟的MainListViewController.xibMainwindow.xib标签栏控制器加载。

我也尝试删除MainListViewController.xib ,从MainWindow.xib标签栏控制器中删除它,在AppDelegate中创buildMainListViewController并将其添加到Tab Bar Controller作为UITabBarItem摆脱这个笔尖问题,但我仍然得到相同的错误。

如果你有一个UIBableViewController子类的NIB,那么它的viewsockets必须连接到一个UITableView

您正确地删除了MainListViewController.xib ,并在代码中完成了这一切,但是它不适用于您的原因是因为旧版XIB在构build和运行时不会被删除。 所以,从模拟器中删除应用程序,然后再试一次。 它应该工作。

我有使用故事板的类似问题。 我会发布我的解决scheme,为他人的利益。 关键是,如果你已经正确地将文件的所有者设置为UITableView的子类,那么你仍然需要确保view属性被设置为Table View。 我正在使用故事板,但同样的事情也应该适用于笔尖。 展开“文档大纲”,以便您可以看到故事板的层次结构。 我将在下面列出一些屏幕截图。 解决这个问题的快速方法是,您要在文档大纲中查看您的视图 。 删除任何你有作为它的孩子的tableview。 拖动视图属性顶部的其他tableview。 完成。 我会在屏幕截图中给你看。

在这里输入图像说明

注意两个表。 你想删除table1及其单元格。

在这里输入图像说明

好。 现在拖动table2到视图,你就完成了。 现在应该工作。 基本上,如果你有一个UITableViewController的子类,那么它必须有表视图代替视图,否则会崩溃。

在这里输入图像说明

原因可能是:

.h文件检查它是UIViewController的子类。 它会解决问题。

总之,你正在设置一个自定义的UITableViewController子类到UIViewController! 你不可以做这个。 你应该给UIViewController一个UIViewController的子类。

我使用Storyboard和1个表格查找解决scheme。

关键是当你创build一个自定义的类(newViewController)只是检查它是UITableViewController的一个子类。 一旦创build转到表视图控制器(我们的表),并在身份检查器select之前创build的自定义类(newViewController)。

这对我行得通。 希望我的评论帮助某人。

请连接你的表视图作为一个视图outlet.outlet必须连接到一个UITableView。

有几个原因可能会发生。

  1. 你可能还没有添加UITableViewDelegate&UITableViewDataSource到你的.h

    @interface TableController:UIViewController {

  2. 您可能没有将您声明的sockets连接到Storyboard / Nib中的组件

  3. 你可能调用一个UIViewController而不是UITableView或者在你的.h版本中

@interface TableController : UIViewController

要么

  @interface TableController : UITableViewController 

如果您使用UITableView作为您的顶视图。

喜欢这个 :

在这里输入图像说明

您需要在Controller中使用UITableViewController

 class ItemsViewController: UITableViewController 

如果您在Storyboat中的View下使用UITableView。

喜欢这个 :

在这里输入图像说明

你需要使用UITableViewDelegate和UITableViewDataSource与UIViewController

 class ItemsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

我有这个问题,解决这只是一个简单的事情。

保持笔尖,如果你已经创build…

转到(XIB文件),并从对象库添加一个tableView组件到XIB文件的iPhone屏幕,它应该工作:)

这对我有效。 希望它可以帮助你。

在AppDelegate – >中

 #import "TableViewController.h" // name of your TableViewController class - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //PUT TableViewController *controller = [[TableViewController alloc] initWithStyle:UITableViewStylePlain]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = controller; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; // Override point for customization after application launch. return YES; } 

确保在故事板中你的视图控制器指向这个类:

故事板

我也遇到过这个问题,但我在xcode 6.2中使用了storyboard。 我从故事板中删除了相应的视图,并将表视图控制器从对象库重新拖放到故事板,然后工作。

@smileBot答案帮助我意识到解决scheme是非常容易的,由iOS提出的错误是有道理的

终止应用程序由于未捕获的exception'NSInternalInconsistencyException',原因:' – [UITableViewController loadView]加载“MainListViewController”的笔尖,但没有得到一个UITableView。

他们的基本上说,nib的视图控制器没有返回一个UITableView,因为它不是,大多数情况下 – 你的笔尖是返回一个View – 当你在Xcode IDE中创build一个新的ViewController时默认为你创build。

解决方法就像删除视图 – 这可能会违反规范 – 但继续前进,select它和退格 – 然后拖放一个UITableView到你的ViewController中,这个UITableView现在将作为你的TableViewController的根视图。

请记住,这只是对直接inheritanceUITableViewController的类才有必要的。

祝你好运。

我有同样的问题,浪费3小时后,我发现它“…这是错误的”我使用tableviewcontroller类,并给这个类的uiviewcontroller引用,而不是视图控制器类我拿tableviewcontroller类,因为我把故事板uiviewcontroller。 因此删除tableviewcontroller类并将tableviewcontroller类的代码粘贴到视图控制器类中,然后在身份检查器中的故事板中将“不粘贴整个代码只粘贴逻辑”给当前视图控制器类的类引用。