动态 UItableviewcell 仍然显示占位符文本

dynamic UItableviewcell still show placeholder text

我在静态单元格中嵌入了动态 UITableView。

我还根据这个问题的答案创建了一个新的数据源:Swift: TableView within Static UITableViewCell

我的问题是动态 UITableViewcell 的数据没有加载数据并保持显示占位符名称。你能帮我理解为什么吗?

主视图控制器

class CreateCompanyTableViewController: UITableViewController {
@IBOutlet weak var lblNumberOfUser: UILabel!
var newStakeholders: [ReadOrganizationStakeholder] = []
private lazy var dataSource = NewUserDataSource(newStakeholders: self.newStakeholders)

@IBOutlet weak var companyUsersTableView: UITableView!

override func viewDidLoad() {
   
    super.viewDidLoad()
    lblNumberOfUser.text = "\(newStakeholders.count) Users"
    companyUsersTableView.dataSource = dataSource
    companyUsersTableView.delegate = dataSource
    companyUsersTableView.reloadData()
}

override func viewDidAppear(_ animated: Bool) {
    lblNumberOfUser.text = "\(newStakeholders.count) Users"
    companyUsersTableView.reloadData()
}

@IBAction func addNewUser(_ sender: Any) {
    performSegue(withIdentifier: "segueAddNewUsers", sender: sender)
}

@IBAction func unwindFromSelectSubUsertoAddUserCompany(_ sender: UIStoryboardSegue){
    if  let senderVC = sender.source as? NewUserForCompanyTableViewController{
        print(senderVC.newStakeholder!)
        var newuser = senderVC.newStakeholder!
        dataSource.newStakeholders.append(newuser)
        companyUsersTableView.reloadData()
    }
}

}

class NewUserDataSource: NSObject, UITableViewDataSource ,UITableViewDelegate{
    // We keep this public and mutable, to enable our data
    // source to be updated as new data comes in.
    var newStakeholders: [ReadOrganizationStakeholder]
    
    init(newStakeholders: [ReadOrganizationStakeholder]) {
        self.newStakeholders = newStakeholders
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    func tableView(_ tableView: UITableView,
                   numberOfRowsInSection section: Int) -> Int {
        return newStakeholders.count
    }
    
    func tableView(_ tableView: UITableView,
                   cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let stakeholders = newStakeholders[indexPath.row]
        let cell = tableView.dequeueReusableCell(
            withIdentifier: "newUserTableViewCell",
            for: indexPath
            ) as! NewUserTableViewCell
        
        cell.setlblUsername(stakeholders.fullName)
        cell.setlblEmail(stakeholders.emailAddress!)
        
        return cell
    }
}

您的数据似乎为空:

    var newStakeholders: [ReadOrganizationStakeholder] = []

您对此发表了评论:

       // let dataSource = NewUserDataSource(newStakeholders: self.newStakeholders)

所以是空的,这个 returns 0

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

请在此处设置断点并调试