iOS 8 中的 UISplitViewController 状态恢复

Ste*_*veo 3 uiviewcontroller uisplitviewcontroller ios state-restoration ios8

在 iOS 8 上,UISplitViewController 似乎可以保存和恢复其子视图的状态,例如,主视图是否隐藏。

这是不可取的,因为我的应用程序应该始终以横向显示主视图并始终以纵向隐藏它。如果用户以横向模式关闭应用程序(保存横向状态)并以纵向模式重新打开它(恢复横向状态),则 UISplitViewController 会以错误的配置显示主视图。

我仍然需要为 UISplitViewController 提供一个恢复标识符,以便子视图控制器可以保存和恢复自己的状态。那么如何防止 UISplitViewController 恢复它自己的状态,或者覆盖这种行为呢?

Ste*_*veo 5

我通过继承 UISplitViewController 并覆盖- (void)decodeRestorableStateWithCoder:(NSCoder *)coder什么都不做来解决了这个问题。这样拆分视图控制器就没有机会恢复它的视图,但它的子视图控制器仍然参与状态恢复。