我的应用程序适用于iOS 5.1,但适用于iOS 6模拟器我碰到下面的错误。
终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,原因是:“ - [UITableViewController中的loadView]加载的‘MainListViewController’笔尖,但没有得到一个UITableView。”
我子类UITableViewController
,我不想改变它。
所述的tableview被编程方式创建,有一个虚设MainListViewController.xib
从加载Mainwindow.xib
标签栏控制器。
我也试着删除MainListViewController.xib
,从删除它MainWindow.xib
标签栏控制器,创建MainListViewController
在AppDelegate中,并把它添加到标签栏控制器UITabBarItem
摆脱这个笔尖的问题,但我仍然得到同样的错误。
Answer 1:
如果你有一个NIB为UITableViewController
子类则其view
出口必须挂接到一个UITableView
。
你说得对,删除MainListViewController.xib
并完成所有的代码,但它并没有为你工作的原因是因为当你建立和运行旧的厦门国际银行将不会被删除。 因此,删除模拟器应用程序,然后再试一次。 它应该工作,然后。
Answer 2:
我用故事板也有类似的问题。 我会后我为他人谋取利益的解决方案。 关键是,如果你已正确设置文件的所有者的UITableView的子类,你仍然必须确保视图属性设置为表视图。 我使用的是故事板,但同样的事情应适用于碎粒为好。 展开“文档大纲”所以你可以看到你的故事板的层次结构。 我将包括下列一些屏幕截图。 解决这个快捷方式是,你想看看在文档大纲视图 。 删除你作为它的一个孩子任何的tableview。 在视图属性的顶部拖动其他的tableview。 完成。 我会告诉你的屏幕截图。
请注意这两个表。 要删除表1和它的细胞。
好。 现在拖动表2的视图,你就大功告成了。 现在应该工作。 基本上,如果你有的UITableViewController的子类,那么它必须有表视图代替视图或将崩溃。
Answer 3:
其原因可能是:
.h文件中检查,这是的UIViewController的子类。 它会解决这个问题。
Answer 4:
总之,你是一个自定义的UITableViewController子类设置为一个UIViewController! 你不能做这个。 你应该给一个的UIViewController UIViewController子类。
Answer 5:
如果您使用的UITableView为您的俯视图。
像这样 :
你需要在你的控制器使用的UITableViewController
class ItemsViewController: UITableViewController
如果您使用的UITableView在Storyboatd视野中。
像这样 :
你需要使用的UITableViewDelegate和UITableViewDataSource用的UIViewController
class ItemsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
Answer 6:
我用故事板和1台查看时找到解决方案。
关键是当你创建一个自定义类(newViewController)只是检查是的UITableViewController的子类。 一旦创建转到(我们的表),表视图控制器和身份检查选择(newViewController)之前刚刚创建的自定义类。
这对我行得通。 希望我的评论帮助别人。
Answer 7:
请连接为浏览outlet.outlet必须挂接到一个UITableView你的表视图。
Answer 8:
有几个原因,这可能发生。
您可能还没有添加的UITableViewDelegate&UITableViewDataSource到您的.h
@interface TableController:{的UIViewController
您可能没有连接您的申报网点,在情节提要/笔尖部件
你也许调用一个UIViewController,而不是一个UITableView或韦迪沃瑟在.H
@interface TableController : UIViewController
要么
@interface TableController : UITableViewController
Answer 9:
我有这个问题,并解决它只是一个简单的事情。
保持笔尖,如果你已经创建...
去(XIB文件),并从对象库中添加的tableView组件到XIB文件的iPhone屏幕,它应该工作:)
Answer 10:
这为我工作。 希望它可以帮助你。
在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;
}
请确保你的故事板视图控制器指向这个类:
Answer 11:
我也遇到了这个问题,但我在Xcode 6.2中使用故事板。 我删除从故事板相应的视图,并从对象库到故事板重新拖动表视图控制器,那么它的工作原理。
Answer 12:
@smileBot答案帮我实现的解决方案是非常容易和内部监督办公室提出的错误是有道理的
终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,原因是:“ - [UITableViewController中的loadView]加载的‘MainListViewController’笔尖,但没有得到一个UITableView。”
他们基本上说,因为它是不是,对大多数笔尖的视图控制器没有返回一个UITableView -你的笔尖返回一个视图 -这是您在默认情况下,当您创建在Xcode IDE一个新的视图控制器创建。
该解决方案是删除该视图一样简单-这可能会觉得对规范-但继续并选择它和退格-然后拖放您的视图控制器内的UITableView这UITableView的,现在将作为您的TableViewController里面你的根视图。
请记住,这仅适用于类直接子类的UITableViewController必要的。
祝好运。
Answer 13:
我有同样的问题,浪费3小时后我找到它......“这是错误的”我用tableviewcontroller类,并给这个类的UIViewController参考,而不是视图控制器类我把tableviewcontroller类,因为我拿的UIViewController在故事板。 所以删除tableviewcontroller类和粘贴tableviewcontroller类的代码视图控制器类“而不是粘贴整个代码膏只逻辑”在此之后,在身份检查故事板给当前视图控制器类的类引用。
文章来源: nib but didn't get a UITableView