【问题标题】:UITableViewController loadView loaded the "xxx-view-xxx" nib but didn't get a UITableViewUITableViewController loadView 加载了“xxx-view-xxx” nib 但没有得到 UITableView
【发布时间】:2019-01-09 02:49:28
【问题描述】:

我正在尝试创建一个包含 3 个单元格的表格的应用程序

我想扩展 UITableViewController 而不是 UIViewController,所以我想出了这个

//
//  TodoListTableViewController.swift
//  ListHue
//
//  Copyright © 2018 LR Web Design. All rights reserved.
//

import UIKit

class TodoListTableViewController: UITableViewController {

    let items = ["Find Mike", "Buy Eggos", "Kill Demogorgon"]

    //    viewDidLoad
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "ToDoItemCell", for: indexPath)

        cell.textLabel?.text = items[indexPath.row]

        return cell
    }

}

我在启动我的应用程序时一直收到此错误

2018-08-01 09:26:53.151150-0400 ListHue[4673:207209] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "r5i-1Z-XpF-view-oGI-0m-9XK" nib but didn't get a UITableView.'


身份标签


连接选项卡


这是我的全部截图

如何进一步调试?

【问题讨论】:

  • stackoverflow.com/questions/16394565/… 这可能会解决您的问题
  • 我确实已经看过了。我想扩展UITableViewController 而不是UIViewController
  • 你也扩展了头部的 UITableViewController 吗?
  • 标题,在什么文件中? - 如果你不介意,请告诉更多细节
  • 你能github这个demo吗

标签: ios swift xcode uitableview tableview


【解决方案1】:

问题是你拖了一个表到UIViewController实例,但是你必须从对象库拖一个UITableViewController

tableViewController 的根视图应该是 UITableView 而不是 UIViewUIViewController

【讨论】:

  • 也连接datasource delegate ;D
  • @V_rohit :我确实 NOT 需要以我的方式这样做。 XCode 会自动处理这个问题,因为我选择了正确的课程 UITableViewController
  • 非常敏锐的眼睛;D
【解决方案2】:

嗯,实际上UITableViewController 期望它的''view' 属性是UITableView 类型。在情节提要中创建一个的最简单方法是使用集合中的相应对象(右下角的面板)。在您的情况下,您似乎从集合中提取了UIViewController,然后在其上添加了UITableView

所以你现在有两个选择:

  1. 解决此问题的最简单方法仍然是删除现有的并从集合中获取 Table view controller
  2. 您还可以删除控制器的根视图,将表视图放在其位置,然后将其连接到控制器的view 属性。在这种情况下,不要忘记连接表视图的委托和数据源

【讨论】:

  • 我该怎么做?作为答案的一部分,您可以分享执行此操作的步骤吗?
  • 但是UITableViewController这个不用连接
  • @Anton,对我还有什么建议吗?
  • @kyo 更新了我的答案
  • 我明白了,谢谢你。您的评论是在建议我如何根据我的 senario 中的内容进行修复,还是您试图告诉我解决此问题的多种方法。我现在很困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多