ViewController 查看 Presenter 中的对象数量,但不显示它们

ViewController see count of object in Presenter, but don't display them

我正在将我的测试项目从 SwifUI 重构到 UIKit,一开始虽然我只需要保持我的 Viper 模块不变并更改视图,但我不知道为什么我的 TableViewController 看到(测试使用 print(),每次出现视图时都显示数据已加载)Presenter 中的对象计数,但不显示它们。我还尝试检查我的单元格和表格视图是否正常工作,使用自定义数据是否正常。

class BeersListTableViewController: UITableViewController,BeersListViewProtocol {
    var presenter: BeersListPresenterProtocol!
    var currentPage: Int = 1
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.navigationBar.prefersLargeTitles = true
        title = "All beers"
        let nib = UINib(nibName: "BeerCell", bundle: nil)
        self.tableView.register(nib, forCellReuseIdentifier: "BeerCell")
    }
    override func viewWillAppear(_ animated: Bool) {
        presenter.loadList(at: currentPage)
        print(presenter.beers.count)
    }
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return presenter.beers.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "BeerCell", for: indexPath) as! BeerCell
        
        let beer = presenter.beers[indexPath.row]
        cell.beerName.text = beer.name
        cell.beerABV.text = presenter.formattedABV(beer.abv)
        cell.addToFavoritesButton.setImage(UIImage(systemName: presenter.favoritesButton(beer)), for: .normal)
        return cell
    }




class BeersListPresenter: BeersListPresenterProtocol{
    
    weak var view: BeersListViewProtocol!
    var interactor : BeersListInteractorProtocol!
    var router:  BeersListRouterProtocol!
    
    
    var beers = [Beer]()
    
    //MARK: - Load list of beers
    func loadList(at page: Int){
        interactor.loadList(at: page) { beers in
            DispatchQueue.main.async {
                self.beers.append(contentsOf: beers)
            }
        }
    }

已解决。可能有人会帮助我的解决方案,我在我的视图控制器中创建了方法,每次更改演示者 属性 时调用 tableview.reloadData()

更新: 在视图控制器中添加了一个功能:

func reload(){
tableView.reloadData()
}

演示者更改:

var beers = [Beer]{
didSet{
   view.reload()
  }
}