簡體   English   中英

從AppDelegate和ViewController訪問locaitonManager

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM