Предоставление предложений на основе поиска MKmapview в виде таблицы

У меня есть карта, и на карте я сделал панель поиска, которая работает. Вы можете написать, что вы хотите в нем, и он найдет это место и поместит в него аннотацию. Дело в том, что я хочу отобразить табличное представление, которое даст мне результат после того, что я пишу. Потому что теперь он будет просто угадывать и принимать то, что он считает правильным, что обычно неправильно. Итак, как мне отобразить различные предложения, основанные на том, что я пишу в моей панели поиска? Кто-нибудь знает? Код, который я использую для моей панели поиска, внизу

    func searchBarSearchButtonClicked(searchBar: UISearchBar){
    //1
    searchBar.resignFirstResponder()
    dismissViewControllerAnimated(true, completion: nil)
    if self.mapView.annotations.count != 0{
        annotation = self.mapView.annotations[0]
        self.mapView.removeAnnotation(annotation)
    }
    //2
    localSearchRequest = MKLocalSearchRequest()
    localSearchRequest.naturalLanguageQuery = searchBar.text
    localSearch = MKLocalSearch(request: localSearchRequest)
    localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in

        if localSearchResponse == nil{
            let alertController = UIAlertController(title: nil, message: "Place Not Found", preferredStyle: UIAlertControllerStyle.Alert)
            alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: nil))
            self.presentViewController(alertController, animated: true, completion: nil)
            return
        }
        //3
        self.pointAnnotation = MKPointAnnotation()
        self.pointAnnotation.title = searchBar.text
        self.pointAnnotation.coordinate = CLLocationCoordinate2D(latitude: localSearchResponse!.boundingRegion.center.latitude, longitude:     localSearchResponse!.boundingRegion.center.longitude)


        self.pinAnnotationView = MKPinAnnotationView(annotation: self.pointAnnotation, reuseIdentifier: nil)
        self.mapView.centerCoordinate = self.pointAnnotation.coordinate
        self.mapView.addAnnotation(self.pinAnnotationView.annotation!)
        self.mapItemData = localSearchResponse?.mapItems.last
    }
}

1 ответ

Просто перечислите MKMapItems в вашем localSearchResponse и добавьте их в табличное представление

for item in localSearchResponse!.mapItems {
    // add to a tableView
}

В настоящее время вы просто захватываете последний элемент mapItem в списке и отображаете для него аннотацию.

Другие вопросы по тегам