Ios “如何修复”;但没有';“无法获得UITableView”;错误?
为什么我会犯这个错误 由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:“-[UITableViewController” loadView]加载了“pB1-re-lu8-view-o7U-YG-E7m”nib,但未获得 UtableView。” 这是我的密码:Ios “如何修复”;但没有';“无法获得UITableView”;错误?,ios,iphone,uitableview,swift,uiview,Ios,Iphone,Uitableview,Swift,Uiview,为什么我会犯这个错误 由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:“-[UITableViewController” loadView]加载了“pB1-re-lu8-view-o7U-YG-E7m”nib,但未获得 UtableView。” 这是我的密码: class FriendListTableViewController: UITableViewController{ var objects = NSMutableArray
class FriendListTableViewController: UITableViewController{
var objects = NSMutableArray()
var dataArray = [["firstName":"Debasis","lastName":"Das"],["firstName":"John","lastName":"Doe"],["firstName":"Jane","lastName":"Doe"],["firstName":"Mary","lastName":"Jane"]]
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table View
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
let object = dataArray[indexPath.row] as NSDictionary
(cell.contentView.viewWithTag(10) as! UILabel).text = object["firstName"] as? String
(cell.contentView.viewWithTag(11) as! UILabel).text = object["lastName"] as? String
return cell
}
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
// Return false if you do not want the specified item to be editable.
return false
}
我的故事板是这样的:
我曾经遇到过同样的问题,这是一个愚蠢的错误,我将
UITableViewController
子类化,在UIViewController
中添加了UITableView
从您的故事板图像中,如果您使用UIViewController
而不是UITableViewController
,则可能会解决此问题,只需尝试这种方法即可解决您的问题,如
class FriendListTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
SWIFT 2更新 我尝试了@Viralsavaj的答案,但直到我将tableView“连接”到ViewController中的故事板,作为一个出口,它才对我起作用 像这样:
@ibvar tableView:UITableView代码>
还可以将其添加到您的类中,如@Viralsavaj所述:
class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
我还专门使用了此链接帮助:
只需将tableView拖到ViewController中,并使其成为一个出口。然后可以引用它的属性,例如self.tableView.reloadData()
此属性以及引用tableView
的其他属性都给了我错误,直到我将tableView添加为引用出口
希望这对将来的人有所帮助 我在Swift 2,Xcode 7.2中遇到了这个问题,我将一个视图控制器
拖到我的故事板
上,变成了一个自定义UITableViewController
类,然后我将一个表视图
拖到视图控制器
上。我没有意识到我把它放在了视图的子视图中,该视图是我拖到故事板上的原始视图控制器的一部分
我只是删除了视图
,并再次添加了表视图作为超级视图的第一个子视图 我想你的答案是我们如何使用objective-c设置委托,我已经这样设置了委托“FriendListTableViewController:UIViewController,UITableViewDelegate,UITableViewDataSource”。但是我仍然有相同的错误。您是否检查了您的UITableView
是否已附加顶级。您可以通过UIStoryBoard
的视图层次结构进行检查。@EgaSetyaPutra上面的答案是使用swift。。您使用的是swift还是objective c?@ViralSavaj您是否阅读了Ega Setya Putra对您答案的评论。如果不先读,然后先读,然后告诉我…@AshokLondhe,我在评论后刚刚更新了答案,所以请注意,我如何才能正确地做到这一点?在Void中写入Did Load方法。。self.delegate=self;self.dataSource=self;并在ViewController.h中扩展。。试试这个,解决问题后通知我。@EgaSetyaPutra告诉我你有什么错误。你的答案不是用objective-c写的吗?因为我用的是swiftyep,我经常用和你一样的方法。它是easier@lukeslvi:从您对我的答案的评论以及这个答案,我无法确定您的问题是否已经解决,或者仍然存在?不再存在。谢谢。我将你的建议与另一个链接的建议结合起来。现在它开始工作了。