【问题标题】:MKPinAnnotation to Detailed viewMKPinAnnotation 到详细视图
【发布时间】:2014-10-10 04:40:33
【问题描述】:

我有一个来自 PFQuery 的对象数组,然后使用以下函数在我的 mapView 中添加 MKPinAnnotations:

func addAnnotation() {
    for (var i = 0; i < self.objectArray.count; i++) {
        var location = object.objectForKey("location") as PFGeoPoint

        var annotation = MKPointAnnotation()
        annotation.setCoordinate(CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude))
        annotation.title = object.objectForKey("title") as NSString
        var priceFormatter = NSNumberFormatter()
        self.mapView.addAnnotation(annotation)
    }
}

我希望能够单击图钉(或点击图钉时显示的信息选项卡)并转到详细视图控制器并传递与该图钉或数组中的索引位置相关的信息。 ..

我只需要知道如何获取螺纹销的索引号,这样我就可以执行 segue...过去 3 天我一直被困在这段代码中并放弃并决定询问大师:P

希望你能帮帮我。

谢谢

【问题讨论】:

    标签: ios xcode ios7 swift mkmapview


    【解决方案1】:

    为您的注释创建一个自定义类,您可以在其中存储其他信息,例如数组索引:

    class PinAnnotation : NSObject, MKAnnotation {
        private var coord: CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 0, longitude: 0)
    
        var coordinate: CLLocationCoordinate2D {
            get {
                return coord
            }
        }
    
        var title: String = ""
        var subtitle: String = ""
        var index: Int = 0
    
        func setCoordinate(newCoordinate: CLLocationCoordinate2D) {
            self.coord = newCoordinate
        }        
    }
    

    稍后在您的代码中,您可以设置数组索引:

    func addAnnotation() {
        for (var i = 0; i < self.objectArray.count; i++) {
            var location = object.objectForKey("location") as PFGeoPoint
    
            var annotation = PinAnnotation()
            annotation.setCoordinate(CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude))
            annotation.title = object.objectForKey("title") as NSString
            annotation.index = i
            var priceFormatter = NSNumberFormatter()
            self.mapView.addAnnotation(annotation)
        }
    }
    

    当您使用注解对象时,您可以访问所有属性

    【讨论】:

    • 成功了!这是一个如此简单的解决方案,但我想不出,我真的很感激!谢谢!
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多