Восстановление состояния UISplitViewController в iOS 8

На iOS 8 UISplitViewController появляется, чтобы сохранять и восстанавливать состояние своих подзонов, например, скрывается ли главный вид или нет.

Это нежелательно, потому что мое приложение всегда должно отображать главный вид в ландшафте и всегда скрывать его в портрете. Если пользователь закрывает приложение в ландшафте (сохраняется состояние ландшафта) и снова открывается в портретном режиме (состояние пейзажа восстанавливается), тогда UISplitViewController отображает главное представление в неправильной конфигурации.

Мне все еще нужно предоставить идентификатор восстановления в UISplitViewController, чтобы контроллеры subview сохраняли и восстанавливали свое собственное состояние. Итак, как предотвратить запрет UISplitViewController на восстановление собственного состояния или переопределение этого поведения?

1 ответ

Я решил это, подклассифицируя UISplitViewController и переопределяя - (void)decodeRestorableStateWithCoder:(NSCoder *)coder чтобы ничего не делать. Таким образом, у контроллера split view нет возможности восстановить свои представления, но его дочерние контроллеры пока еще участвуют в восстановлении состояния.

licensed under cc by-sa 3.0 with attribution.