Objective c 在所有视图的顶部显示位置服务警报
我的应用程序从使用Objective c 在所有视图的顶部显示位置服务警报,objective-c,location,mbprogresshud,Objective C,Location,Mbprogresshud,我的应用程序从使用progressHUD窗口在启动图像加载文件开始。 在appDelegate中,我检查位置服务是否已打开,如果已打开,那么没有问题,加载完成后,progressHUD将消失,但如果用户收到请求位置服务权限的警报,它将出现在progressHUD窗口后面,并且我无法在加载应用程序时取消/确定它 如何始终在所有其他视图的顶部显示此警报,特别是在splashprogressHUD顶部显示此警报?您使用的HUD控件是什么 我个人使用的是SVProgressHUD,它非常酷和完整……但有
progressHUD
窗口在启动图像加载文件开始。
在appDelegate
中,我检查位置服务是否已打开,如果已打开,那么没有问题,加载完成后,progressHUD
将消失,但如果用户收到请求位置服务权限的警报,它将出现在progressHUD
窗口后面,并且我无法在加载应用程序时取消/确定它
如何始终在所有其他视图的顶部显示此警报,特别是在splash
progressHUD
顶部显示此警报?您使用的HUD控件是什么
我个人使用的是SVProgressHUD
,它非常酷和完整……但有一个缺点:它创建了自己的UIWindow
,将HUD显示在所有东西的顶部。当系统创建自己的UIWindows
时,尤其是在显示uialertview
时,苹果不推荐这种行为,正如您刚刚意识到的那样,这种行为不起作用
我使用的解决方案是修改SVProgressHUD
,将其自身添加到应用程序的窗口.rootViewController.view
的顶部,使其保持在所有内容的顶部…在其自己的主窗口中,让UIAlertViews
等内容显示在其位于此窗口顶部的私有窗口中,这样,即使progressHUD可见,也可以与UIAlertView
交互
(如果您没有使用
SVProgressHUD
,那么您使用的另一个类可能也存在相同的问题,请检查该类)
我本应该向
SVProgressHUD
发布拉取请求,但还没有时间。如果我不忘的话,我很快就会做的;) 您给您的progressHUD
窗口设置了什么windowLevel
设置?我使用的是基本MBProgressHUD
。不明白您是如何修改它的,以便显示UIAlertViews
?基本上,我只需要一个警报-位置服务
,我能告诉你如何控制这个特定警报吗?不,你不能控制显示哪个窗口UIAlertView
(当然也不能控制操作系统本身显示的作为位置服务使用的窗口的UIAlertView
)。我不使用MBProgressHUD
,但如果它的行为和问题与我解释的相同,在所有内容上使用自己的窗口,甚至是系统警报视图,那么您将需要在主视图中直接显示进度HUD,而不是单独的窗口(我并不真正使用MBProgressHUD,因此您必须签入代码或就此联系开发人员)。