Swift在更改viewcontroller后选择了一行

时间:2015-12-04 13:15:00

标签: swift row tableview

我有两个视图应用程序。如果我选择一行segue加载第二个视图控制器。我希望当我返回到我的第一个控制器时,仍然会选择该行。我试过这个:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.cellForRowAtIndexPath(indexPath)!


   self.tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: UITableViewScrollPosition.None)

}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
           self.tableView.deselectRowAtIndexPath(indexPath, animated: true)


}

但是当返回时,该行不会保持选中状态。有什么问题? P.S。:我不想多重选择,只需要一行。

1 个答案:

答案 0 :(得分:1)

如果您使用UITableViewController子类作为源视图控制器,我认为因为您重写了表视图委托方法,您可以使用视图控制器上的标志clearsSelectionOnViewWillAppear来获取此行为。

override func viewDidLoad() {
    self.clearsSelectionOnViewWillAppear = false
}

或者您也可以在Storyboard中设置它,在选择源表视图控制器的属性选择器时,您必须取消 Clear on Appearance复选框。

enter image description here