状态恢复发出警告 - 导致莫名的视觉异常
Posted
技术标签:
【中文标题】状态恢复发出警告 - 导致莫名的视觉异常【英文标题】:State Restoration emits warning - Causes inexplicable visual abberations 【发布时间】:2014-05-13 23:49:54 【问题描述】:到目前为止,互联网上还没有出现这种发生在我身上的状态恢复警告:
-[UIViewController(StateRestoration) decodeRestorableStateWithCoder:]: Warning - State Restoration for UIViewController has presented view controller, but view controller is either not in a window, or the window is hidden. Deferring presentation which might cause flashing when presentation is made after a turn of the run loop:
self: <SomeTabBarController: 0x16e91220>, presented view controller: <UINavigationController: 0x16dbe260>
TabBarController 有一个将 ViewController (vc1) 推送到导航控制器的视图。然后 VC1 以模态方式将 NavigationController 推送到自身上,它有自己的一系列视图控制器,从 vc2 开始。
当状态恢复时,它会闪回到 vc1(从 vc2 的快照),然后最终再次实时显示 vc2。
如果有人对我什至可以在哪里开始研究此问题有任何想法,那将是一个很大的帮助。
【问题讨论】:
在恢复呈现另一个的根视图控制器时,我也看到了闪烁。我没有收到您收到的警告,尽管它似乎描述了我的问题。你找到解决办法了吗? 只有在安装了添加到状态恢复调试的 .mobileprofile 时才会出现警告。 【参考方案1】:我设法通过使窗口键在application:willFinishLaunchingWithOptions:
中可见来解决这个问题。
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[self.window makeKeyAndVisible];
return YES;
【讨论】:
我试试看,是什么让你决定试试这个? 您收到的错误消息表明窗口没有完全呈现或其他什么,所以我想强制它。在我尝试之后,我也看到苹果在这个示例项目中也是这样做的:developer.apple.com/library/ios/samplecode/… 太棒了,谢谢。我在看那个项目,错过了那一点。以上是关于状态恢复发出警告 - 导致莫名的视觉异常的主要内容,如果未能解决你的问题,请参考以下文章