Ios 地图视图/注释:在展开可选值时意外发现nil

Ios 地图视图/注释:在展开可选值时意外发现nil,ios,annotations,maps,mapkit,mkannotation,Ios,Annotations,Maps,Mapkit,Mkannotation,我有以下功能,可以在用户当前位置的地图上放置一个pin。这是来自“注释详细视图”控制器的,将其放到另一个选项卡中的地图上 @IBAction func dropPin(sender: UIButton) { //creates instance of map from MapController class let map = MapController().mapView let point:MKPointAnnotation = MKPointAnnotat

我有以下功能,可以在用户当前位置的地图上放置一个pin。这是来自“注释详细视图”控制器的,将其放到另一个选项卡中的地图上

    @IBAction func dropPin(sender: UIButton) {

    //creates instance of map from MapController class
    let map = MapController().mapView
    let point:MKPointAnnotation = MKPointAnnotation()

   //converts CGPoint to CLLOcationCoordinate2D
    let coord:CLLocationCoordinate2D = map.convertPoint(map.center, toCoordinateFromView: map)

       //assigns map coord to annotation coordinate
        point.coordinate = coord
        point.title = note.title

        //adds annotation to map
        map.addAnnotation(point)

        }

    }    

我收到“在展开可选值时意外发现零”错误。我知道这是因为map返回nil,我想这是因为我在向map中插入pin之前没有初始化map,但我不知道如何修复它。这也可能是另一个原因。有人有想法吗?

大概
MapController()
是您创建的UIViewController子类?您遇到的问题是,您刚刚实例化了此ViewController的一个新实例,因此它不会初始化任何控件。您需要以某种方式获取对现有视图控制器的引用,但您没有提供足够的代码-此方法在哪个类中?此方法在UIViewController my DetailView中。我有这样的设置:1。[注释表视图]->[特定注释的详细视图]。在DetailView中,有一个小按钮用于生成注释。是的,MapController()是一个子类。哪个视图控制器具有该映射?详细视图控制器?如果是这样,那么您只需使用
let map=self.mapView
no,MapController视图控制器就拥有地图。假设这是一个两个选项卡的应用程序:1个选项卡带有tableview,1个选项卡带有map。每次在表视图中创建注释时,注释详图视图中都会有一个按钮,用于创建注释