SVProgressHUD 是强大的toast工具,但有些情况下会失效。个人遇到的情况是从相册选择照片,返回到上一级页面时,SVProgressHUD就会失效。
解决方法是更改SVProgressHUD默认配置:
[SVProgressHUD setMaxSupportedWindowLevel:NSIntegerMax];
[SVProgressHUD setContainerView:[UIApplication sharedApplication].delegate.window];
导致该问题的原因是:
SVProgressHUD文件中有一个frontWindow对象,负责承载toast内容。而该对象需要满足以下条件才会不为空:
遍历UIApplication.sharedApplication.windows,其中window的screen是UIScreen.mainScreen&window可见&level介于UIWindowLevelNormal和maxSupportedWindowLevel(默认2000)之间&window.isKeyWindow时该window才会赋值给frontWindow。
所以,才有上面的两行代码设置,第一行是设置level为最大整数,第二行是取delegate的window,[UIApplication sharedApplication].delegate.window不会为nil。
...