从Singleton Object呈现iOS 8 UIAlertController

Jak*_*tiz 1 objective-c core-location ios

我目前有一个locationManager(不是CLLocationManager)单例,它在应用程序启动时获取我的位置,并管理应用程序中的其他位置服务.

如果状态被拒绝,则在初始化位置管理器时会触发提示更改授权状态的警报.因为它是一个nsobject我无法呈现它,我一直在寻找其他选择,但大多数是黑客.实际上是否有可能以这种方式呈现它?

提前致谢

Log*_*gan 5

我相信有些人会争论你是否应该这样做.话虽如此,你可以这样做:

[[(<#YourAppDelegate#> *)[UIApplication sharedApplication].delegate window].rootViewController presentViewController:<#(UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>];
Run Code Online (Sandbox Code Playgroud)

应该注意的是,如果您使用的是Mac应用程序而不是iOS,则可能存在多个窗口,您可能需要使用密钥窗口.这有时可能是一个系统窗口,所以你应该知道它.这是一篇解释差异的帖子:

/sf/answers/1518912601/

如果你想在keyWindow上出现,可以使用:

[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:<#(UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>];
Run Code Online (Sandbox Code Playgroud)