Swift 如何将单独的xib单元格注册到多个TableView?

Swift 如何将单独的xib单元格注册到多个TableView?,swift,xcode,uitableview,swift4,xib,Swift,Xcode,Uitableview,Swift4,Xib,我有两个带有两个xib单元格的TableView。如何在第二个表中注册第二个xib单元 它不断地把第一张桌子上的电池放进去 这是我的代码: let cellNib = UINib(nibName: "FirstTableViewCell", bundle: nil) self.tableView.register(cellNib, forCellReuseIdentifier: "cell") let cellNib2 = UINib(nibName: "SecondViewCell", bu

我有两个带有两个xib单元格的TableView。如何在第二个表中注册第二个xib单元

它不断地把第一张桌子上的电池放进去

这是我的代码:

let cellNib = UINib(nibName: "FirstTableViewCell", bundle: nil)
self.tableView.register(cellNib, forCellReuseIdentifier: "cell")

let cellNib2 = UINib(nibName: "SecondViewCell", bundle: nil)
self.secondTableView.register(cellNib2, forCellReuseIdentifier: "cell2")
下面是我的cellForRowAt函数:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


if tableView == tableView {
 let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! FirstTableViewCell



    return cell
}

else  {
    let cell2 = self.secondTableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! SecondViewCell

     return cell2
}

}

cellForRowAt
函数中,有一个名为
tableView
的局部变量(查看函数头,
tableView
是第一个参数的名称),因此检查
tableView==tableView
总是返回true。这就是为什么你总是会得到第一个细胞

将该行替换为:

如果tableView==self.tableView{}


通过添加
self
,可以直接引用类变量
tableView
,而不是局部变量。希望这有帮助。

在您的
cellForRowAt
函数中,有一个名为
tableView
的局部变量(查看函数标题,
tableView
是第一个参数的名称),因此检查
tableView==tableView
总是会返回true。这就是为什么你总是会得到第一个细胞

将该行替换为:

如果tableView==self.tableView{}


通过添加
self
,可以直接引用类变量
tableView
,而不是局部变量。希望这能有所帮助。

你说的“它一直把第一个xib放进去”是什么意思?您是说第一个表视图单元格正在为两个表注册吗?你怎么知道的?是的,第一个是两个都注册的。当我运行它时,第一个单元格出现在两个表中。标识符为“cell”的那一个,您能给我们展示一下您的
cellForIndexAt
函数吗?将代码段添加到您的问题中,请将我的代码段添加到CellForRow中“它一直放在第一个xib”是什么意思?您是说第一个表视图单元格正在为两个表注册吗?你怎么知道的?是的,第一个是两个都注册的。当我运行它时,第一个单元格出现在两个表中。标识符为“cell”的那一个,您能给我们展示一下您的
cellForIndexAt
函数吗?将代码段添加到您的问题中,请将我的代码段添加到cellForRowAt