【发布时间】:2021-03-28 06:02:55
【问题描述】:
我在 viewController 中有 tableviewA。我使用 XIBs 作为 tableViewA 的单元格。在那些 XIB 里面,我有另一个 tableViewB。使用委托,一旦我从服务器获取数据,我会尝试从 viewController 刷新 tableViewB。
使用的代码如下。不知道为什么 tableViewB 从服务器接收到数据后没有刷新
1.定义协议
protocol tblRefresh: NSObject {
func refreshTbl()
}
2.ViewController
class HomeVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
weak var delegateTblRefresh : tblRefresh?
//tableViewA defined here
func getDataFromServer(){
// get data from server
self.delegateTblRefresh?.refreshTbl()
}
}
3.XIB作为tableViewA的单元格
class Challengers: UITableViewCell, UITableViewDelegate, UITableViewDataSource, tblRefresh {
@IBOutlet weak var tableViewB: UITableView!
let homeVC = HomeVC()
override func awakeFromNib() {
super.awakeFromNib()
homeVC.delegateTblRefresh = self
}
//tableViewB defined here
func refreshTbl() {
tableViewB.reloadData()
}
}
【问题讨论】:
-
HomeVC在哪里实例化?你确定它是从HomeVC.shared实例化的,而不仅仅是HomeVC? -
进行了更正。然而它并没有解决我的问题。
-
所以你打电话给
let homeVC = HomeVC()——但是你把它放在屏幕上的什么地方?似乎屏幕上的HomeVC可能与您在Challengers中所指的不一样