我正在开发一个关于XCode 6和Swift的项目。 我需要向UIViewController添加一个UITableView,然后用内容填充表。
因此,在我的默认UIViewController上,我添加了一个UITableView和一个UITableViewCell(使用故事板)。 接下来,我将UIViewController设置为表的dataSource和delegate。
最后,我将此代码添加到我的视图controller.swift:
import UIKit
class ViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var table: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return 3
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
cell.textLabel?.text = "Hello world"
table.reloadData()
return cell
}
然而,当我运行该项目时,我遇到了以下日志崩溃
2015-04-08 21:06:52.820 tableViewTest[12380:783945] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "BYZ-38-t0r-view-8bC-Xf-vdC" nib but didn't get a UITableView.'
我尝试过任何事情,我真的不知道如何解决这个问题。
任何人都可以帮助我吗?
答案 0 :(得分:1)
您的桌面视图为IBOutlet
,您需要将ViewController
作为UIViewController
的子类。
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {}
答案 1 :(得分:0)
在我看来,您在故事板中使用了UIViewController
,但在代码中引用了UITableViewController
。尝试更改
class ViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
到
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
并将table.reloadData()
放入viewDidLoad
函数。