nib文件中没有UITableView。

63

我的应用程序适用于iOS 5.1,但在iOS 6模拟器上出现以下错误。

终止应用程序,原因是未捕获的异常 'NSInternalInconsistencyException',原因:'-[UITableViewController loadView]加载了“MainListViewController”nib文件,但没有获取UITableView。'

我正在对UITableViewController进行子类化,并且不想更改它。

表格视图是通过编程方式创建的,有一个虚拟的MainListViewController.xibMainwindow.xib Tab栏控制器中加载。

我还尝试删除MainListViewController.xib,将其从MainWindow.xib Tab栏控制器中移除,在AppDelegate中创建MainListViewController,并将其作为UITabBarItem添加到Tab栏控制器中,以摆脱这个nib问题,但仍然出现相同的错误。


你的表格是在哪里被加载的?它是否被设置为视图输出口/属性? - CodaFi
它在viewDidLoad中加载,在第二个版本中(通过编程方式添加UITabBarItem),它没有设置为outlet/property。 - irmakoz
13个回答

0

我也遇到了这个问题,但是我在xcode 6.2中使用了storyboard。我从storyboard中删除了相应的视图,然后重新从对象库中拖动了表视图控制器,这样就解决了。


0
我也遇到了同样的问题,浪费了三个小时才找到原因... "这是错误"。我使用了tableviewcontroller类,并给出了这个类的uiviewcontroller引用,而不是视图控制器类。就像我在storyboard中使用uiviewcontroller一样,我使用了tableviewcontroller类。所以删除tableviewcontroller类,并将你的tableviewcontroller类代码粘贴到视图控制器类中,“不要粘贴整个代码,只需粘贴逻辑”。之后,在故事板中,在身份检查器中给出当前视图控制器类的类引用。

0

这对我有用。希望能帮到你。

在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;
}

请确保在Storyboard中,您的视图控制器指向了这个类:

Story Board


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接