MKLocalSearch БЕЗ MKMapView

Я хотел бы использовать MKLocalSearch для отображения результатов для заранее определенной строки с результатами, относящимися к позиции пользователей, однако все примеры, которые я видел до сих пор, требуют или используют MKMapView для установки местоположения пользователей и, возможно, используют панель поиска для сбора текст, необходимый для поиска.

Я просто хотел бы выполнить поиск по предопределенной строке и загрузить результаты в виде таблицы, не имея сначала карты, есть ли хороший пример того, как это сделать?

Редактирование, чтобы добавить больше деталей, включая код, который я в настоящее время пытаюсь использовать. Этот код не создает таблицу результатов.

Дальнейшее редактирование: Анна ниже указала, что проблема может быть в UISearchDisplayController, однако я разорвал текущий код прямо из рабочего примера проекта, поэтому я действительно не могу понять, что происходит по-другому или почему UISearchDisplayController не показывает Результаты.

файл заголовка:

#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interface CallACabViewController : UIViewController <CLLocationManagerDelegate, UITableViewDataSource, UITableViewDelegate, UISearchDisplayDelegate> { CLLocationManager *locationManager; MKLocalSearch *localSearch; MKLocalSearchResponse *results; } -(IBAction)closeButtonClicked:(id)sender; @end 

файл реализации:

 - (void)viewDidLoad { [super viewDidLoad]; locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [self.searchDisplayController setDelegate:self]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; } #pragma mark - LocationUpdating -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *newLocation = [locations lastObject]; CLLocation *oldLocation; if (locations.count > 1) { oldLocation = [locations objectAtIndex:locations.count-2]; } else { oldLocation = nil; } NSLog(@"didUpdateToLocation %@ from %@", newLocation, oldLocation); MKCoordinateRegion userLocation = MKCoordinateRegionMakeWithDistance(newLocation.coordinate, 1500.00, 1500.00); [self performSearch:userLocation]; } #pragma mark - Search Methods -(void)performSearch:(MKCoordinateRegion)aRegion { // Cancel any previous searches. [localSearch cancel]; [locationManager stopUpdatingLocation]; // Perform a new search. MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init]; request.naturalLanguageQuery = @"taxi"; request.region = aRegion; [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; localSearch = [[MKLocalSearch alloc] initWithRequest:request]; [localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){ [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; if (error != nil) { [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Map Error",nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show]; return; } if ([response.mapItems count] == 0) { [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"No Results",nil) message:nil delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show]; return; } results = response; [self.searchDisplayController.searchResultsTableView reloadData]; }]; NSLog(@"DEBUG"); } #pragma mark - TableView Delegate Methods - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [results.mapItems count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *IDENTIFIER = @"SearchResultsCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:IDENTIFIER]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:IDENTIFIER]; } MKMapItem *item = results.mapItems[indexPath.row]; cell.textLabel.text = item.name; cell.detailTextLabel.text = item.placemark.addressDictionary[@"Street"]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.searchDisplayController setActive:NO animated:YES]; } -(IBAction)closeButtonClicked:(id)sender { [locationManager stopUpdatingLocation]; [self dismissViewControllerAnimated:YES completion:nil]; } @end 

One Solution collect form web for “MKLocalSearch БЕЗ MKMapView”

Я получил эту работу в конце, но без использования таблицы поиска. Я сохранил результаты ответа, а затем реализовал свой собственный UITableView, присвоив каждому результату ячейке.

  • UITableViewCell - Лучшее место для настройки ячейки
  • GMSMapView didTapAtCoordinate дает неправильные координаты до тех пор, пока не будет изменена карта
  • Доступ к UITextField в пользовательском UITableViewCell
  • Изменение стиля UITableView как «сгруппированного» вызывает сбой
  • Как асинхронно загружать изображения UITableViewcell, чтобы прокрутка не отставала
  • Что представляет собой хороший способ отображения счетчика в нижней части таблицы, когда пользователь прокручивается, но ячейки таблицы просматриваются медленно?
  • Загрузите HTML в ячейку UITableView с помощью пользовательского шрифта
  • iOS, где можно разместить дизайн пользовательских ячеек? awakeFromNib или cellForRowAtIndexPath?
  • Перезапустить вид таблицы, но не перемещать iOS
  • Перезагрузка данных UITableView в соответствии со значением ползунка
  • Is - асинхронный или синхронный?
  • Interesting Posts

    parse.com push-loc-key push-уведомления

    Приложение замерзает после попытки использовать камеру в iOS-симуляторе даже с обработкой catch

    Команда XCode ibtool ищет несуществующий каталог

    Как я могу определить, когда закончена регистрация ScheduledAudioFileRegion?

    Лучший способ удалить повторяющиеся значения из NSMutableArray в Objective-C?

    iOS сравнить NSUInteger с NSInteger

    UITableViewRowAction пользовательский стиль?

    Автоматический сброс поврежденных NSUserDefaults

    Как импортировать все внешние библиотеки jus импортировать один файл в swift

    FHSTwitterEngine – 'NSInvalidArgumentException', 'data parameter is nil'

    Crashlytics / Fabric дистрибутива iOS-приложения с поддержкой Watch-up?

    В чем разница между URLWithString и файломURLWithPath из NSURL?

    Swift – кодировать URL-адрес

    В iOS10 snapshotView выполняется моментальный снимок до того, как представление полностью отображается

    Сложная настройка вида в UIVIew или UIViewController? (Проектное решение)

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.