ios swift tableview не показывает пользовательские ячейки

Да, это вопрос, зависящий от платформы.

Если вы пишете консольную программу на POSIX, используйте API сигнала (#include & lt; signal.h & gt;).

В приложении WIN32 GUI вы должны обрабатывать сообщение WM_KEYDOWN.

-3
задан DeadMan 31 March 2019 в 03:53
поделиться

2 ответа

После разговора об этом мы обнаружили две проблемы.

Первой проблемой был пропущенный reloadData вызов, упомянутый выше. Это заставляло cellForRow не называться. Добавление reloadData исправило эту проблему, но тогда выходы пользовательского класса ячеек были равны нулю, что привело к сбою в setItemData.

Вторая проблема заключалась в том, что в коде вызывался register(_:forCellReuseIdentifier:), но пользовательская ячейка уже была настроена как часть объявления Interface Builder UITableView. Повторный вызов register для пользовательского класса перерегистрирует reuseIdentifier, отключая розетки, установленные в раскадровке.

Удаление вызова register и добавление reloadData решили все проблемы.

0
ответ дан clarus 31 March 2019 в 03:53
поделиться

Вы никогда не звоните setupTableViews(). Ваш код должен выглядеть следующим образом:

class NavigationViewController: UIViewController, SideMenuControllerDelegate {

override func viewDidLoad() {
        super.viewDidLoad()

        setupTableViews()
    }

func setupTableViews() {
menuTable.reloadData()
    }
}

extension NavigationViewController: UITableViewDataSource, UITableViewDelegate {

    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "SideMenuTableItem", for: indexPath as IndexPath) as! SideMenuTableItem
        cell.setItemData(items[indexPath.row])
        return cell
    }

    public func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
}

Вы никогда не вызываете функцию и не вызываете viewDidLoad. Это должно помочь. Кроме того, где находится остальная часть кода контроллера представления (это все? Не должно быть!).

Вам не нужно регистрировать свою ячейку, потому что вы запросили ее и убедитесь, что вы перезагрузили Data ().

Надеюсь, это поможет!

0
ответ дан OkiRules 31 March 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: