1

我有一个基于拆分视图的应用程序,它呈现一个主从界面,并在纵向模式下使用弹出框来呈现主列表。弹出框展示了一个分段的表格视图,最终由NSFetchedResultsController. 我可以点击工具栏按钮来显示主列表,滚动到任意行,然后点击该行以关闭弹出框。

我的问题是,如果表格滚动到第二部分的顶部,当我关闭弹出窗口然后点击工具栏按钮重新呈现它时,表格的滚动位置始终设置为第二部分的第一行部分位于列表顶部。如果我没有滚动到第二部分的顶部,它会在表格再次出现时正确地记住它的滚动位置。

同样,在横向模式下,如果我将表格滚动到第三部分的顶部,然后旋转到纵向,当我回到横向时,滚动位置始终设置为第三部分的第一行位于顶部名单。

我尝试-scrollToNearestSelectedRowAtScrollPosition:animated在主视图控制器-viewWillAppear和拆分视图委托中调用,但均splitViewController:popoverController:willPresentViewController:无效。有人知道我可能做错了什么吗?

4

1 回答 1

2

你试过储存tableView.contentOffset吗?

CGPoint offset = tableView.contentOffset;

...
...
...

[tableView setContentOffset: offset];
于 2010-05-09T05:32:23.273 回答