Главное представление UISplitViewController теряет состояние после вращения

На iPad я заметил, что такие приложения, как Mail и WebMD, сохраняют строки на последнем уровне иерархии "Основного" (слева) представления, выделенного при нажатии. Они также запоминают это состояние после вращения; если вы выберете электронное письмо в альбомной ориентации, а затем повернетесь в портретную ориентацию и нажмете кнопку "Входящие", чтобы вызвать всплывающее окно "Основной вид", правильный элемент все равно будет выделен, а список прокручен в правильную позицию. Поверните его обратно в ландшафт, и это все еще правильно.

Я работаю над приложением для iPad, похожим на Mail. Если я запускаю свое приложение в альбомной ориентации, выбираю элемент из списка и поворачиваю iPad, кажется, что главное представление теряет свое состояние; его таблица прокручивается вверх, и ни один элемент не выделяется. Даже если устройство затем возвращается в альбомную ориентацию, список все равно забыл последний нажатый элемент.

Есть ли какой-нибудь простой / автоматический способ получить мастер-вид в UISplitViewController сохранить свое состояние? Я думаю, что я могу воспроизвести это поведение, сохраняя NSIndexPath последнего элемента и использовать UITableView"s scrollToRowAtIndexPath:atScrollPosition:animated: чтобы переместить его в правильное место до / после поворота устройства, но я надеюсь, что это уже сделано автоматически на стороне Apple, если я щелкну правой кнопкой.

1 ответ

Решение

Оказывается, это "переключатель" на стороне Apple - в частности, clearsSelectionOnViewWillAppear недвижимость в UITableViewController который установлен в YES по умолчанию. Установка его в NO позволяет ему помнить свое состояние.

Другие вопросы по тегам