我现在转移到swift 3,当我创建一个表视图(在viewController中)并连接到一个类时,我遇到了tableViews的问题我得到了这个错误:
-[UITableViewController loadView] instantiated view controller with identifier "UIViewController-gdE-bi-3N4" from storyboard "Main", but didn't get a UITableView
我不知道问题是什么,这让我发疯,这是我的代码:
import UIKit
class FindFriendVC: UITableViewController {
@IBOutlet weak var results: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.results.dataSource = self
self.results.delegate = self
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 0
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 0
}
}
答案 0 :(得分:0)
我认为你不需要在Tableview控制器中使用IBOutlet - 如果你使用带有UITableView委托的常规ViewController来控制表,那就是你需要的东西。
编辑:我通常做的是将UITableView添加到构建器中的常规ViewController,右键单击从tableview拖动到ViewController图标(带有白色方块的黄色圆圈)
并连接代表&数据源。然后将UITableViewDelegate和UITableViewDataSource类添加到视图控制器&挂起tableView numberOfSections&您可以使用上面的numberOfRowsInSection,除了将所有代码放在viewController类中,而不是UITAbleViewController类。
希望有所帮助。
答案 1 :(得分:0)
为什么要制作额外的UITableView
IBOutlet
?
每个UITableViewController
都有一个带有预连接tableView
和DataSource
的隐式属性Delegate
。
删除
@IBOutlet weak var results: UITableView!
...
self.results.dataSource = self
self.results.delegate = self
并使用tableView
属性。