1
我不明白为什么我的TableView没有显示。它可能是愚蠢的,但我所有的MenuItemStruct都是完整的,而不是空的,我的表格视图似乎设置正确。没有错误,但我的cellForRowAt方法没有被调用。请帮忙?为什么我的UITableView不显示?
class MenuViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var menuNavigationDelegate: MenuNavigationDelegate?, menuManagerDelegate: MenuManagerDelegate?
var conferenceId = "conferenceId-1"
var isDataLoading = false
@IBOutlet
var menuTableView: UITableView?
var menuItems = Array<MenuItemStruct>()
@IBAction
func closeMenuTapped() {
self.menuManagerDelegate?.closeMenu()
}
override func viewDidLoad() {
self.menuTableView?.register(UINib(nibName: "MenuTableViewCell", bundle: nil), forCellReuseIdentifier: "menuCell")
self.isDataLoading = true
MenuDataManager.getMenuInformation(conferenceId: self.conferenceId) {
menuItems, response, error in
self.menuItems = menuItems!
self.isDataLoading = false
DispatchQueue.main.async {
self.menuTableView?.reloadData()
}
}
self.menuTableView?.reloadData()
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:MenuTableViewCell = menuTableView!.dequeueReusableCell(withIdentifier: "menuCell", for: indexPath) as! MenuTableViewCell
if (!self.isDataLoading) {
cell.setUpCellWithData(menuItem: menuItems[indexPath.row])
}
return cell
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if(!self.isDataLoading) {
return self.menuItems.count
}
return 0;
}
}
检查您已连接的tableview的数据源和委托。你的tableView的插座引用应该像@IBOutlet weak var menuTableView:UITableView!并确保其连接。 – Thahir
你忘了设置tableViews委托和数据源 – shallowThought
请检查你的'numberOfRowsInSection'是否被调用。如果不是,dataSource和委托尚未设置为'UITableView'。如果它被调用,你的'numberOfRowsInSection'必须总是返回0. – Rikh