我在标签栏控制器中显示了两个表格视图。一个显示按受欢迎程度过滤的内容,另一个显示按时间(最新)过滤的内容。两者具有相同的单元格布局,当前正在复制代码。如何使该单元格对于UITableViewController
来说是共同的?我的普通班是ContentViewCell
,但是我不确定如何将IBOutlets
连接到情节提要中的两个班。
class ContentViewCell: UITableViewCell {
@IBOutlet weak var title: UILabel!
@IBOutlet weak var body: UILabel!
@IBOutlet weak var author: UILabel!
@IBOutlet weak var tag: UILabel!
// ..
}
目前我有LatestTableViewController
和
class LatestViewCell: UITableViewCell {
@IBOutlet weak var latestTitle: UILabel!
@IBOutlet weak var latestBody: UILabel!
@IBOutlet weak var latestAuthor: UILabel!
@IBOutlet weak var latestTag: UILabel!
// ..
}
答案 0 :(得分:1)
将XIB用于tableView Cell,并在项目中的任何地方重复使用。
答案 1 :(得分:1)
是的,如果ContentViewCell
两者完全相同,则可以将UITableViewController
分配给多个IBOutlet
。
您需要做的就是为两个单元格分配相同的类,并将IBOutlet
重新连接到新分配的单元格。而且对两者都适用。
请记住,如果您忘记连接任何IBOutlet
,而您正在使用它,它将崩溃。所以要小心。
答案 2 :(得分:0)
您可以在不同的UIViewController中使用相同的UITableViewCell。您需要在UITableView的cellForRowAt indexPath数据源方法中使用以下方法。
func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell
示例:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ContentViewCell",for: indexPath) as! ContentViewCell
//Set you cell here
return cell
}