【发布时间】:2016-01-30 12:54:02
【问题描述】:
我有一个包含单元格数据的表格视图。当我单击单元格时,它会将我带到另一个视图控制器并在新 ViewController 上的 UIlabel 中显示单元格标签。
但是,当我返回 tableview 并选择不同的单元格时,新视图控制器上的值不会立即更新。它显示最后单击的单元格,然后如果我返回并再次重复该过程,它将更新。
didSelectRowAtIndexPath
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell
self.labeltosend = currentCell.textLabel!.text!
}
prepareForSegue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == PostSegueIdentifier {
if let destination = segue.destinationViewController as? NewViewController {
destination.newlabel = labeltosend
}
}
}
我应该以某种方式重新加载数据吗?
编辑 1:目标视图控制器
@IBOutlet weak var dispLabel: UILabel!
var newlabel = String()
override func viewWillAppear(animated: Bool) {
dispLabel.text = newlabel
}
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
【问题讨论】:
-
什么是 PostSegueIdentifier?
-
具有 segue 标识符名称的变量
-
我假设创建了你从表视图控制拖动到另一个视图控制器的 segue?
-
是的,然后选择了标识符名称(PostSegueIdentifier)
-
如何回到第一个视图控制器?它是一种什么样的segue?通常,当您返回视图控制器时,该视图控制器会被释放。所以很奇怪,它会显示一个之前已经传递给它的值,因为它应该刚刚被实例化。这是 DestinationViewController 类的全部内容吗?
标签: ios swift uitableview