UITableView选定的行位置保持不变

时间:2017-01-18 06:04:52

标签: ios swift uitableview

我有UITableViewController和行列表,我将原型单元连接到NavigationController&它是rootViewController,一切都很完美,但是一旦我选择了行 no:10 这一行,它就会显示在主要的详细视图中,当我点击后退按钮时,我会回到{ {1}}但是这一次UITableViewController滚动到顶部位置并且它假设保持在 no:10 行,当我从细节中回来时,它是一种保持我的行位置的方法查看?

Swift 3,Xcode 8.2.1

UITableViewController

Story board

2 个答案:

答案 0 :(得分:1)

你的结构错误,

有了这个结构,iOS会自动返回按钮,否则你可以添加自己的按钮,在这种情况下不需要创建unwind segue方法。

New structure

修改

如果你想要自己的后退按钮,那么你需要调用它的动作,

navigationController?.popViewController(animated: true)

答案 1 :(得分:0)

编辑:根据你的故事板,你必须将tableViewController作为导航控制器的根视图控制器。目前的设置看起来有点奇怪。

您需要设置UITableView的标志tableView.remembersLastFocusedIndexPath = true。 docs here

如果您在返回此控制器时没有重新加载数据(100%确定清除焦点),它将适用于您的情况。如果您重新加载数据,则需要一些自定义机制来保存indexPath或所选对象,并在viewWillAppear或其他生命周期方法中恢复此选择。