任何人都可以解释为什么这会为" destinationCell"
返回niloverride func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "unwindToCreateTask" {
let contact = contactList[self.tableView.indexPathForSelectedRow()!.row]
let destinationVC = segue.destinationViewController as! CreateTaskVC
if let destinationCell = destinationVC.tableView.dequeueReusableCellWithIdentifier("assignToCell") as? UITableViewCell {
destinationCell.textLabel?.text = contact.contactName
destinationCell.detailTextLabel?.text = contact.contactEmail
}
}
}
虽然这会返回正确的" destinationCell"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "unwindToCreateTask" {
let contact = contactList[self.tableView.indexPathForSelectedRow()!.row]
let destinationVC = segue.destinationViewController as! CreateTaskVC
**destinationVC.tableView.reloadData()**
if let destinationCell = destinationVC.tableView.dequeueReusableCellWithIdentifier("assignToCell") as? UITableViewCell {
destinationCell.textLabel?.text = contact.contactName
destinationCell.detailTextLabel?.text = contact.contactEmail
}
}
}
如果添加.reloadData()是实现此目的的最佳方法吗?
答案 0 :(得分:0)
你到底在做什么?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
...
if let destinationCell = destinationVC.tableView.dequeueReusableCellWithIdentifier("assignToCell") as? UITableViewCell {
destinationCell.textLabel?.text = contact.contactName
destinationCell.detailTextLabel?.text = contact.contactEmail
}
在填充dequeueReusableCellWithIdentifier
时,cellForRowAtIndexPath
函数应仅在UITableView
函数中使用。
如果您需要prepareForSegue
函数(或任何其他函数)来获取用户点击的单元格中的数据,您应该在didSelectRowAtIndexPath
函数中处理此问题。
当调用它时,您将拥有NSIndexPath
参数,告诉您已点击的单元格的节和行索引,并且您可以从那里查找数据。
将此“选定项目”记录存储在contact
变量中,当调用prepareForSegue
函数时,您将获得contact
值,随时可以使用!