У меня есть разделение основанное на представлении приложение, которое представляет интерфейс основной детали и использует легкую сдобу для представления основного списка когда в режиме портрета. Легкая сдоба представляет секционное табличное представление, которое в конечном счете заполняется подклассом NSFetchedResultsController
. Я могу коснуться кнопки на панели инструментов, чтобы представить основной список, прокрутить к любой строке и коснуться строки для отклонения легкой сдобы.
Моя проблема состоит в том, что, если таблица прокручивается мимо вершины второго раздела, когда я отклоняю легкую сдобу и затем более позднее касание кнопка на панели инструментов для представления его, положение прокрутки таблицы всегда устанавливается таким образом, что первая строка второго раздела наверху списка. Если я не прокрутил мимо вершины второго раздела, она правильно помнит свое положение прокрутки, когда таблица представлена снова.
Точно так же в альбомном режиме, если я прокручиваю таблицу мимо вершины третьего раздела и затем вращаюсь к портрету, когда я возвращаюсь для озеленения положения прокрутки, всегда устанавливается таким образом, что первая строка третьего раздела наверху списка.
Я пытался звонить -scrollToNearestSelectedRowAtScrollPosition:animated
в обоих основной контроллер представления -viewWillAppear
, а также в разделении просматривают делегата splitViewController:popoverController:willPresentViewController:
, бесцельно. У кого-либо есть подсказка, что я мог бы делать неправильно?
Вы пытались сохранить tableView.contentOffset
?
CGPoint offset = tableView.contentOffset;
...
...
...
[tableView setContentOffset: offset];