Wil*_*ers 1 uitableview ios swift3
我不明白为什么我的 TableView 没有显示。它可能有些愚蠢,但我所有的 MenuItemStruct 都是完整的并且不为空,而且我的表视图似乎对我来说设置正确。没有错误,但我的 cellForRowAt 方法没有被调用。请帮忙?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要设置表视图的委托和数据源。您已包含UITableViewDataSource和UITableViewDelegate协议,但尚未在代码中为您的 tableview 分配委托和数据源。
在您的viewDidLoad:
self.menuTableView.delegate = self
self.menuTableView.dataSource = self
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3891 次 |
| 最近记录: |