ios - 从 AppDelegate 和 ViewController 访问 locaitonManager

标签 ios swift core-location cllocationmanager appdelegate

在我的应用委托(delegate)类中,我声明了 locaitonManager:

var locationManager: CLLocationManager?

稍后在我的应用程序中的一个 View Controller 类中,我需要停止位置更新:

locationManager?.stopUpdatingLocation()

但是我得到错误:

Value of type CLLocation Manager.... has no member ....

因为 View Controller 无法访问在应用程序委托(delegate)类中声明的位置管理器。我的简单出路是什么?我必须在应用程序委托(delegate)中拥有 locationManager 访问权限。

注意:奇怪的是,我的 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 也在 View Controller 内,它似乎工作正常。

最佳答案

回答我自己的问题以备将来引用:

在 ViewController 的类中:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

然后在代码的后面,我可以像这样引用 App Delegate 中声明的 locationManager:

appDelegate.locationManager!.requestAlwaysAuthorization()

希望这对其他人有帮助。

关于ios - 从 AppDelegate 和 ViewController 访问 locaitonManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33576366/

相关文章:

ios - 当前位置未显示在 MapView (iOS) 中

objective-c - 在适用于 iOS 的 Restful 协议(protocol)中推送通知

ios - Swift - 来自 CIImage QR 代码的图像数据/如何呈现 CIFilter 输出

ios - 使用核心位置框架计算以公里/小时为单位的速度

iphone - 以编程方式隐藏应用程序

ios - 创建可触摸的 React-Native-Art 对象?

ios - 自定义 UITableviewCells 正确显示,但该部分中只有一个是正确的类

swift - 是否可以将节点保持在适当的位置

iphone - 注释 MapKit 自动化

php - 如何在执行函数之前等待 Swift 中的变量? ( swift )