簡體   English   中英

快速沒有MKPointAnnotation

[英]No MKPointAnnotation in swift

我試圖添加一個標記目標的MKPointAnnotation。 destination是從以前的視圖控制器傳遞的MKMapItem 我知道destination具有值,因為它下方的CLCircularRegion使用destination為中心,並在用戶處於范圍內時觸發。 我添加注釋的方式有什么問題嗎?

import UIKit
import MapKit
import CoreLocation

class ViewController2: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate{

var map: MKMapView?
var manager: CLLocationManager?
var destination: MKMapItem?


convenience init(frame:CGRect, destination:MKMapItem){
    self.init(nibName: nil, bundle: nil)
    self.destination = destination
    self.view.frame = frame


    self.map = MKMapView(frame: frame)
    self.map!.delegate = self

    self.view.addSubview(self.map!)
}


func viewDidAppear(animated: Bool) {

        var annotation = MKPointAnnotation()
        annotation.coordinate = destination!.placemark.coordinate
        self.map!.addAnnotation(annotation)

        var center: CLLocationCoordinate2D = destination!.placemark.coordinate
        var radius: CLLocationDistance = CLLocationDistance(300)
        var identifier: String = "Destination"
        let region = CLCircularRegion(center: center, radius: radius, identifier: identifier)
        manager?.startMonitoringForRegion(region)

    }

當按下按鈕時,將調用provideDirections函數。

import UIKit
import MapKit
import Parse

class ViewController1: UIViewController {

var alat = ""
var alng = ""


func provideDirections(){

                self.manager = CLLocationManager()
                self.manager.startUpdatingLocation()
                println("Location Updated")

                let request = MKDirectionsRequest()
                request.setSource(MKMapItem.mapItemForCurrentLocation())

                let latitude = (alat as NSString).doubleValue
                let longitude = (alng as NSString).doubleValue

                let destinationCoordinate = MKPlacemark(coordinate: CLLocationCoordinate2DMake(latitude, longitude), addressDictionary: nil)

                var secondVC = ViewController2(frame: self.view.frame, destination: MKMapItem(placemark: destinationCoordinate))


                self.navigationController?.pushViewController(secondVC, animated: true)

我通過將注釋從viewDidAppear移到了convenience init來解決了這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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