0

私は地図を持っていて、地図上に機能する検索バーを作成しました。必要なものを書き込めば、その場所を見つけて注釈を入れてくれます。問題は、私が書いた後に結果が得られるテーブルビューを表示したいということです。今では、正しいと思われるものを推測して採用するだけで、通常は間違っているからです。では、検索バーに書いている内容に基づいてさまざまな提案を表示するにはどうすればよいですか? 誰か知っていますか?私の検索バーに使用しているコードは下にあります

    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
    }
}
4

1 に答える 1

0

localSearchResponse で MKMapItems を列挙し、それらをテーブルビューに追加するだけです

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

現在、リストの最後の mapItem を取得して、その注釈を表示しているだけです。

于 2015-11-24T17:06:02.710 に答える