状态恢复发出警告 - 导致莫名的视觉异常

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/… 太棒了,谢谢。我在看那个项目,错过了那一点。

以上是关于状态恢复发出警告 - 导致莫名的视觉异常的主要内容,如果未能解决你的问题,请参考以下文章

导致 clang 发出 Wunneeded-internal-declaration 警告的静态非内联函数

如何在 Gitlab 中完成工作并发出警告

50.nagios监控工具

50.nagios监控工具

如果视图控制器由于内存警告而被卸载,如何恢复状态?

COP26发出警告:全球上市公司将导致气温上升3°C