UITableView滚动到用户单击的位置

时间:2010-02-01 17:26:46

标签: iphone objective-c uitableview

我确信这是一个非常常见的问题:我有一个UITableView,里面有很多条目。如果单击一个单元格,您将看到有关所选对象的一些详细信息(使用导航控制器完成)。现在,如果用户点击屏幕顶部的后退箭头,他就会成功返回旧表,但现在滚动到现在,无论用户之前触摸过哪个单元格,都会回滚到顶部。

我在ViewController的“viewWillAppear”方法中创建表。但我认为这不是我的问题,因为日志条目显示当我从另一个视图返回时(点击后退按钮),“reloadData”调用(在此方法中)不会被调用。

有人知道如何阻止UITableview从更深层次返回时向上滚动吗?

非常感谢!

2 个答案:

答案 0 :(得分:3)

您应该在 - [viewDidLoad]中创建表格视图。这很可能不仅可以解决您的问题,而且也是一种更清洁的方式来做这样的事情。

目前,每次出现视图时都会新创建表视图,当使用后退按钮返回时,也会发生这种情况。

答案 1 :(得分:0)

一种方法是你可以记录单元格所在的索引路径,然后使用UITableView scrolLToRowAtIndexPath滚动到所选的单元格,这是一个参考http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableView/scrollToRowAtIndexPath:atScrollPosition:animated