我尝试在另一个TableViewDelegate
的tableView中使用TableViewDataSource
和tableView
。但是,cellForRowAtIndexPath没有被调用。什么是问题。
class RequesterTableViewCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource {
var delegate: RequesterTableViewCellDelegate?
var serviceRequestCardItem: ServiceRequestCard?
@IBOutlet weak var tvIssues: UITableView!
override func awakeFromNib() {
super.awakeFromNib()
self.tvIssues.tag = tagOfIssueTableView
self.tvIssues.delegate = self
self.tvIssues.dataSource = self
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func bActivatedmenu(sender: AnyObject) {
if delegate != nil {
self.delegate?.selectedCellForDelete(self)
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var countOfIssues: Int = 0
if let issues = serviceRequestCardItem?.getDateEquipment()?.getIssues()?.count {
countOfIssues = issues
}
return countOfIssues
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(IssueCell.reuseIdentifer(), forIndexPath: indexPath)
let issue = serviceRequestCardItem!.getDateEquipment()?.getIssues()![indexPath.row]
if tableView.tag == tagOfIssueTableView {
if let lState = (cell as! IssueCell).lIssueState {
lState.text = issue?.getIssueState()?.getName()
}
}
return cell
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
}
//在tableView中创建单元格
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell()
let serviceRequestCardItem = serviceRequestCardArray[indexPath.row]
var requesterCell: RequesterTableViewCell! = nil
if tableView.tag == tagOfRequestTableView {
cell = tableView.dequeueReusableCellWithIdentifier(RequesterTableViewCell.reuseIdentifer(), forIndexPath: indexPath)
requesterCell = (cell as! RequesterTableViewCell)
requesterCell.delegate = self
requesterCell.setDataForTableView(serviceRequestCardItem)
requesterCell.selectedCell(serviceRequestCardItem)
}
return cell
}
答案 0 :(得分:0)
您需要创建两个与表视图相关联的变量(出口)。例如:
var tableViewOne: UITableView?
var tableViewTwo: UITableView?
例如,此方法使用如下:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == tableViewOne {
return 5
}
if tableView == tableViewTwo {
return 1
}
}
使用此模式,您需要填写table view
答案 1 :(得分:0)
你可以: -
在您的parentTableViewCell的noOfValues
函数中设置您将在numberOfRowsInSection
中返回的cellForIndexPath
..
声明一个变量
var noOfValues : Int!
RequesterTableViewCell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {...
let cell = tableView.dequeueReusableCellWithIdentifier(RequesterTableViewCell.reuseIdentifer(), forIndexPath: indexPath)
cell.noOfValues = serviceRequestCardItem?.getDateEquipment()?.getIssues()?.count
...}
在RequesterTableViewCell
: -
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return noOfValues
}
return
语句正在执行,甚至在您能够设置计数之前只需更改代码中的numberOfRowsInSection
: -
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var countOfIssues: Int = 0
if let issues = serviceRequestCardItem?.getDateEquipment()?.getIssues()?.count {
countOfIssues = issues
tvIssues.reloadData()
}
return countOfIssues
}