GMSAutocompleteViewController

GMSAutocompleteViewController

我正在使用GMSAutocompleteViewController,其中我的UITextfield中有三个uiviewcontroller。当单击第一个UItextfield时,我将移动到带有标签号的GMSAutocompleteViewController,但是现在我想在gmsautocompleteviewcontroller方法中由用户单击的文本字段中显示地名。请看我的代码。

    - (void)textFieldDidBeginEditing:(UITextField *)textField
{


 NSLog(@"start editing");

    if (textField.tag ==1) {
        NSLog(@"first");
        GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
        acController.delegate = self;
        [self presentViewController:acController animated:YES completion:nil];


       }
    else if (textField.tag ==2)
    {
        NSLog(@"second");
        GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
        acController.delegate = self;
        [self presentViewController:acController animated:YES completion:nil];
    }
    else if (textField.tag ==3)
    {
        NSLog(@"third");
        GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
        acController.delegate = self;
        [self presentViewController:acController animated:YES completion:nil];
       }




      }


    - (void)viewController:(GMSAutocompleteViewController *)viewController
      didAutocompleteWithPlace:(GMSPlace *)place {
    // Do something with the selected place.
    NSLog(@"Place name %@", place.name);
    NSLog(@"Place address %@", place.formattedAddress);
    NSLog(@"Place attributions %@", place.attributions.string);
    NSLog(@"lat and log%f", place.coordinate.latitude);
    NSLog(@"lang %f", place.coordinate.longitude);



    value = place.name;


    [self dismissViewControllerAnimated:YES completion:nil];
       }

    - (void)viewController:(GMSAutocompleteViewController *)viewController
    didFailAutocompleteWithError:(NSError *)error {
    // TODO: handle the error.
    NSLog(@"error: %ld", (long)[error code]);
    [self dismissViewControllerAnimated:YES completion:nil];
        }

     // User canceled the operation.
     - (void)wasCancelled:(GMSAutocompleteViewController *)viewController {
    NSLog(@"Autocomplete was cancelled.");
    [self dismissViewControllerAnimated:YES completion:nil];
      }

最佳答案

全局声明一个文本字段

 UITextField *tappedTextField;

检查下面的代码
- (void)textFieldDidBeginEditing:(UITextField *)textField{
tappedTextField = textField;
}
 //gmsautocomplete delegate
 - (void)viewController:(GMSAutocompleteViewController *)viewController
didAutocompleteWithPlace:(GMSPlace *)place {
// Do something with the selected place.
NSLog(@"Place name %@", place.name);
NSLog(@"Place address %@", place.formattedAddress);
NSLog(@"Place attributions %@", place.attributions.string);
NSLog(@"lat and log%f", place.coordinate.latitude);
NSLog(@"lang %f", place.coordinate.longitude);



tappedTextField.text = place.name;


[self dismissViewControllerAnimated:YES completion:nil];
}

10-08 12:18