Tüm örnekler yetkilendirme isteğinde bulunur ve denetleyici konumunda konumu güncellemeye başlar. Uygulama temsilcisinde ve bir görünüm denetleyicisinde, bir düğmeye bastığınızda kullanıcının koordinatlarını/konumunu döndürmek istiyorum. (Kullanıcı denetimlerinin/konumların herhangi bir denetleyicide erişilebilir olmasını istiyorum)Uygulama temsilcisinde requestWhenInUseAuthorization konum hizmeti nasıl ayarlanır ve denetim denetleyicisinde koordinatlar nasıl oluşturulur?
cevap
Burada birkaç seçeneğiniz var.
Her şeyden önce, CLLocationManager için zaten uygulanmış bir sargıyı uygulamanızı veya kullanmanızı ve bu işlevselliği doğrudan AppDelegate uygulamasında (example of such location manager implementation) uygulamak yerine kodunuzun herhangi bir yerine çağırmanızı öneririm. Böyle bir konum yöneticisi, bildirim merkezi kullanarak programınızın geri kalanıyla iletişim kurabilir (her görüntüleme denetleyicisi tanımladığınız belirli bir bildirime abone olur) veya örneğin bir kapanış dizisi aracılığıyla (her görünüm denetleyicisi, konum güncellemesini yönetmek için kendi kapağını geçirir) konum yöneticisi örneği ve bir kullanıcı konumu güncellendiğinde, yer yöneticisi dizideki her kapanmayı çağırır, dolayısıyla tüm görüntü denetleyicileri konum verilerine erişim isteğinde bulunduğundan bu güncelleştirmeyi alırsınız).
Bunun dışında, AppDelegate'inizde CLLocationManager aracılığıyla kullanıcı konumuna önceden eriştiğinizi düşünelim. bildirim merkezi
kullanarak - AppDelegate -Swift: (Eğer gerçek konum verilerini var) konumu hakkında güncellemeleri almak bir temsilci işlevinde, aşağıdakileri yaparak uygulamasından istediğiniz görünümü kontrolöre bu veri gönderebilir
public func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let arrayOfLocation = locations as NSArray let location = arrayOfLocation.lastObject as! CLLocation let coordLatLon = location.coordinate var userInfo = [String:AnyObject]() userInfo["longitude"] = coordLatLon.longitude userInfo["latitude"] = coordLatLon.latitude let nc = NSNotificationCenter.defaultCenter() nc.postNotificationName("userLocationUpdate", object: self, userInfo: userInfo) }
Swift - ViewController - bildirim merkezi (örneğin, viewDidAppear/viewDidLoad tanımlamaktır) kullanılarak
let nc = NSNotificationCenter.defaultCenter()
nc.addObserver(self, selector: #selector(ViewController.locationUpdated(_:)), name: "userLocationUpdate", object: nil)
.210 Swift - ViewController - locationUpdated selektör func locationUpdated(notification: NSNotification) {
if let userInfo = notification.userInfo {
//access your data here
}
}
- 1. Nesnenin tuvalindeki koordinatlar nasıl oluşturulur?
- 2. Bir dizine tam denetim nasıl ayarlanır
- 3. PhoneGap. Coğrafi konum hizmeti
- 4. C/C++'da Windows Hizmeti Nasıl Oluşturulur?
- 5. Azure: BizSpark aboneliğindeki Uygulama hizmeti ve Uygulama Hizmeti planının konumu nasıl değiştirilir?
- 6. ZF2 denetleyicisinde baseUrl nasıl edinilir?
- 7. IBM Websphere Uygulama Yönetim Hizmeti nasıl etkinleştirilir?
- 8. Panzoom.js için koordinatlar nasıl sıfırlanır?
- 9. Coğrafi Konum Uygulama çalışmıyor
- 10. Django'da çerez nasıl ayarlanır ve sonra şablon oluşturulur?
- 11. Ekran konumu Koordinatlar - Google Maps
- 12. IconElementLeft olmadan Uygulama çubuğu bileşeni nasıl ayarlanır?
- 13. AngularJS denetleyicisinde mailto nasıl çağırılır
- 14. denetleyicisinde POST isteğinin nasıl işleneceği
- 15. Android'de geçerli konum nasıl alınır?
- 16. Postgresql JDBC URL'sinde uygulama adı nasıl ayarlanır?
- 17. Express framework'te konum yanıtı HTTP üstbilgisi nasıl ayarlanır?
- 18. Görsel Stilleri olan ComboBox gibi görünecek bir denetim nasıl oluşturulur?
- 19. Çevirici Varsayılanı, Konum yerine Değer ile nasıl ayarlanır?
- 20. Web Hizmeti için bir Java istemcisi nasıl oluşturulur?
- 21. Program aracılığıyla denetim için bir olay tetikleyici nasıl oluşturulur
- 22. Dağıtılmış bir web uygulama platformu nasıl oluşturulur?
- 23. jni ve Android.mk nasıl oluşturulur?
- 24. TipScript ile bir uygulama nasıl oluşturulur?
- 25. İyon hizmeti ve Node.js basit web sunucusu, Coğrafi konum engellemeyi engelleyemiyor Chrome konum belirleme
- 26. WCF'de Güvenlik Belirteci nasıl ayarlanır?
- 27. Liste görünümünde satırın konum (konum) nasıl alınacağı
- 28. Bir metin dosyasından veri (koordinatlar) nasıl alınır ve C#
- 29. Bağlamda çizim yaparken koordinatlar nasıl çevrilir?
- 30. Glassfish'te varolan etki alanı için windows hizmeti nasıl oluşturulur
Güzel cevap. Herhangi bir zamanda görüntü denetleyicideki son koordinatı/konumu nasıl yazdırabilirim? Hala o yöneticiyi uyguluyorum, anladığım zaman hastalanmam. – user42541
Bunu yapmanın birçok yolu var. En son alınan koordinatı (tercih edilen şekilde değil ve biraz kirli, benim düşüncemde) tutan statik bir global değişken yaratabilirsiniz. Ardından, ihtiyacınız olan her ViewController'da bir var oluşturabilirsiniz ve en son gps'yi saklayabilirsiniz. Önerdiğim gibi kendi LocationManager sarmalayıcınızla giderseniz, kullanıcı konum güncellendiğinde güncellediğiniz normal bir değişken tanımlayın. Daha sonra bu değişkene herhangi bir ViewController'da LocationManager örneğine başvurmak suretiyle erişebilirsiniz. Not: LocationManager tekildir, bu yüzden verilerinizi almak oldukça kolaydır. –
@ user42541 LocationManager'da bir public instance değişkeni (userLocationVar, diyelim) oluşturmak istiyorum, kullanıcı konumu delege işlevinde her güncellemede bu değişkeni günceller ve her ViewController'da en son konum almak için LocationManager.sharedInstance.userLocationVar'a erişebilirsiniz. –