在一个viewController
中使用了[ProgressHUD show**]
,首次打开app使用一切正常,但是我退出app之后重新打开,然后到了那个页面,它就不显示了,功能一切正常,也显示经过了这行代码。
原因是因为我在applicationWillEnterForeground
中调用了didFinishLaunchingWithOptions
,意味着每次退出app再重新打开的时候,相当于执行了didFinishLaunchingWithOptions
里面的初始化的代码。我觉得应该是就是这里出了问题,我去掉了在applicationWillEnterForeground
中对didFinishLaunchingWithOptions
的调用,果然一切都好了。
但是我没有像上面那样解决,因为像上面那样的话,我还要去修改其他部分的逻辑方面的代码,改动有点大,然后我就想,会不会是ProgressHUD
特有的问题,所以我就试试其他HUD,比如非常流行的SVProgressHUD
,然后,一切都好了……好了……了。
所以,解决方案就是,我全部替换成了SVProgressHUD
,GITHUB上有。我看了两者的源码,技术太浅以及时间太紧,没看出来什么问题,有时间再仔细研究。
注:SVProgressHUD
源码里面对于展示进度条的逻辑是这样的:
根据SVProgressHUD的层级结构可以看出,从底层到顶层依次是:UIControl (overlayView) -> SVProgressHUD -> UIView (hudView) -> UIVisualEffectView -> AnimatedView (具体动画视图) 。
主要区别应该就在上面这个层级上面。