我有UITableViewController
和行列表,我将原型单元连接到NavigationController
&它是rootViewController
,一切都很完美,但是一旦我选择了行 no:10 这一行,它就会显示在主要的详细视图中,当我点击后退按钮时,我会回到{ {1}}但是这一次UITableViewController
滚动到顶部位置并且它假设保持在 no:10 行,当我从细节中回来时,它是一种保持我的行位置的方法查看?
Swift 3,Xcode 8.2.1
UITableViewController
答案 0 :(得分:1)
你的结构错误,
有了这个结构,iOS会自动返回按钮,否则你可以添加自己的按钮,在这种情况下不需要创建unwind segue方法。
修改强>
如果你想要自己的后退按钮,那么你需要调用它的动作,
navigationController?.popViewController(animated: true)
答案 1 :(得分:0)
编辑:根据你的故事板,你必须将tableViewController作为导航控制器的根视图控制器。目前的设置看起来有点奇怪。
您需要设置UITableView的标志tableView.remembersLastFocusedIndexPath = true
。
docs here
如果您在返回此控制器时没有重新加载数据(100%确定清除焦点),它将适用于您的情况。如果您重新加载数据,则需要一些自定义机制来保存indexPath
或所选对象,并在viewWillAppear
或其他生命周期方法中恢复此选择。