1
なぜ私のTableViewが表示されないのか分かりません。それはおそらく何かばかげているが、私のMenuItemStructのすべてが完全であり、nullではないと私のテーブルビューは私に正しく設定されているようだ。エラーはありませんが、私の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のコンセント参照は@IBOutlet weakのようにする必要があります。var menuTableView:UITableView!接続されていることを確認してください。 – Thahir
tableViews Delegate&DataSourceを設定するのを忘れた – shallowThought
'numberOfRowsInSection'が呼び出されているかどうか確認してください。もしそうでなければ、dataSourceとdelegateは 'UITableView'のために設定されていません。呼び出されている場合は、 'numberOfRowsInSection'は常に0を返す必要があります。 – Rikh