![](/img/trans.png)
[英]Swift - Accessing AppDelegate window from viewController
[英]Accessing locaitonManager from both AppDelegate and ViewController
在我的應用程序委托類中,我聲明locaitonManager:
var locationManager: CLLocationManager?
稍后,在我的應用程序中的一種視圖控制器類中,我需要停止位置更新:
locationManager?.stopUpdatingLocation()
但是我得到了錯誤:
類型CLLocation Manager ....的值沒有成員....
因為視圖控制器無法訪問在應用程序委托類中聲明的位置管理器。 我的簡單出路是什么? 我必須在應用程序委托中具有locationManager訪問權限。
注意:奇怪的是,我的func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
也位於視圖控制器內部,並且似乎工作正常。
要回答我自己的問題以備將來參考:
在ViewController的類中:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
然后在代碼后面,我可以像下面這樣引用在App Delegate中聲明的locationManager:
appDelegate.locationManager!.requestAlwaysAuthorization()
希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.