我正在尝试创建一个tableView(在一个viewController中),它显示一组数据(我以前做过的事情),但这次它没有显示数据。我已经将viewController声明为tableView的dataSource和Delegate。这是我的viewControllerClass:
class MenuViewController: UIViewController , UITableViewDataSource , UITableViewDelegate {
var menuItems = [ "1" , "2" , "3"]
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.
}
open func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return menuItems.count
}
open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = menuItems[indexPath.row]
return cell
}
}
答案 0 :(得分:0)
请检查您是否使用xib / Storyboard创建UITableView,然后使用数据源创建UITableView并委托连接出口。否则,如果以编程方式创建它,则设置委托和数据源。
答案 1 :(得分:0)
您应该在viewDidLoad()中注册单元格,如下所示:
tableView.register(UITableViewCell.self,reuseIdentifier:" cell")。 希望这有帮助
答案 2 :(得分:0)
你的tableView需要IBOutlet。从故事板,您需要从表视图拖放到MenuViewController。然后在viewDidLoad中,你需要设置datasource和delegate。
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
}
现在您的表格视图不知道谁将提供数据。因为没有调用numberOfRowsInSection和cellForRow。由于它们未被调用,因此表视图不知道要显示什么。由于表格视图不知道要显示什么,因此不会显示任何内容。