我的应用包含一个更新屏幕,可从我们的API中获取新数据。目前,这是从菜单中的幻灯片手动调用的。
我想在app load上添加“检测到更新”功能。因此,当应用加载时,它会检查新数据,如果有新数据,则会将更新屏幕显示为popover
。我还想在第一个应用程序加载时显示更新屏幕(因为我们发布没有数据的应用程序 - 所以它需要在使用之前运行至少一个更新)
该应用程序非常简单,root view controller
目前是navcontroller
,其中有3个或4个VC系列(几乎整个应用程序除了打开几个信息页面的侧边菜单外)和更新屏幕)。
我想我需要做的是在AppDelegate
中运行“更新检查”,如果它返回true,则显示弹出窗口。但是我收到了这个错误:
2016-11-01 13:02:28.507 XXX [38895:1026306]警告:尝试出席 上 谁的观点不在 窗口层次结构!
我猜是因为root controller
尚未加载并显示。
什么是解决这个问题的最好办法。我有几个想法,但不确定是否有好处,或者即使它们会起作用!
尝试找一些“root view controller is loaded”回调 在app delegate中使用
将更新检查放入我的初始视图控制器(但这不是它所属的位置,我应该能够更改初始视图控制器,而不会影响更新检查,因为它们是单独的东西)
某种“路由器视图”作为我的初始视图控制器,我可以将逻辑放入检查。但是我不希望这个屏幕占用应用程序(即我不希望有一个微调器让用户等待更新检查 - 我希望他们直接使用应用程序,如果需要更新弹出显示)< / p>
对此有何建议?
答案 0 :(得分:0)
尝试在窗口上推送该加载指示器而不是根视图控制器。或选择第一个VC并将其放在上面。
答案 1 :(得分:0)
也许你应该创建新的UIViewController(CheckForUpdateViewController) 并将该视图控制器设置为根视图控制器。然后,您可以在CheckForUpdateViewController.m中添加该检查,而不是在AppDelegate中检查更新。在那里,您可以根据需要显示弹出框,或者如果没有可用更新,则打开导航视图控制器。