Accueil Médias sociaux Implémentation du Find Find pour le géocodage dans votre application iOS - Factures

Implémentation du Find Find pour le géocodage dans votre application iOS - Factures

Vidéo: Google Geocode API & JavaScript Tutorial 2025

Vidéo: Google Geocode API & JavaScript Tutorial 2025
Anonim

Pour que votre fonctionnalité de géocodage fonctionne dans votre application iOS, vous devez effectuer plusieurs opérations. choses dans le contrôleur de recherche. La plupart de ce que vous devez faire tourne autour de l'obtention du texte que l'utilisateur entre. Vous devez également avoir le texte géocodé et que l'emplacement géocodé soit implémenté en tant qu'objet Annotation par le modèle Trip, que le contrôleur Find ajoutera à la carte.

Pour accéder au texte, vous devez d'abord créer une sortie pour le champ Texte. Suivez ces étapes:

  1. Sélectionnez Main_iPad. storyboard dans le navigateur de projet.

  2. Sélectionnez le contrôleur de la vue principale dans le plan du document.

  3. Sélectionnez l'assistant dans le sélecteur de l'éditeur, et si MasterViewController. Le fichier h n'apparaît pas, naviguez jusqu'à l'aide de la barre de saut.

  4. Dans le plan du document, ouvrez le triangle d'affichage de la deuxième section Table View du contrôleur Master View - Master Scene pour accéder à la cellule Table View.

  5. Ouvrez la cellule Vue de la table pour afficher la vue de contenu contenant l'étiquette de recherche et le texte.

  6. Ouvrez le triangle d'affichage de cette cellule pour afficher le champ Texte, puis faites glisser le contrôle du champ Style de texte sans bordure vers l'interface du contrôleur de la vue principale (dans l'éditeur Assistant) entre les directives @interface et -d. un point de vente nommé findText.

C'est une autre façon de créer la prise.

Un objet UITextField est un contrôle qui affiche un texte modifiable et envoie un message à son délégué lorsque l'utilisateur appuie sur la touche Entrée. Vous utilisez généralement un objet UITextField pour permettre à l'utilisateur d'entrer de petites quantités de texte, puis de faire quelque chose avec lui - comme chercher quelque chose ou ajouter un nouveau contact.

Sélectionnez le champ Texte, sélectionnez l'éditeur Standard dans le sélecteur Editeur de la barre d'outils Xcode, puis ouvrez la zone Utilitaire. Vous pouvez définir un certain nombre de propriétés de champ de texte dans l'inspecteur des attributs.

Comment sauriez-vous quand l'utilisateur a saisi du texte? Aussi, comment obtenez-vous le clavier pour montrer, puis cacher?

Lorsqu'un utilisateur tape sur un UITextField, il devient le premier répondeur et le clavier se lève automatiquement pour permettre à l'utilisateur d'entrer du texte - vous n'avez rien à faire pour y arriver.

Lorsque l'utilisateur a fini de saisir du texte, il appuie sur la touche Retour - la touche Retour dont vous avez réussi à modifier l'étiquette.

Lorsque la touche Go est sélectionnée, le champ de texte détermine s'il a un délégué et si le délégué a implémenté une méthode textFieldShouldReturn: - l'une des méthodes de protocole facultatives UITextFieldDelegate.Si le délégué l'a fait, il envoie au délégué le message textFieldShouldReturn:. Donc textFieldShouldReturn: est l'endroit où capturer le texte.

Pour capturer le texte et l'envoyer au FindController, vous devez devenir le délégué du champ de texte et implémenter la méthode textFieldShouldReturn:. Mais avant de faire cela, vous devez faire une dernière chose dans Interface Builder.

Vous commencez par faire de MasterViewController un UITextFieldDelegate. Mettre à jour MasterViewController. h avec le code en gras pour qu'il adopte le protocole UITextFieldDelegate.

#import @interface MasterViewController: UITableViewController @property (fort, nonatomic) DetailViewController * detailViewController; @property (faible, non atomique) IBOutlet UITextField * findText; -d

Le gros travail sera effectué dans la méthode textFieldShouldReturn: de la TextField. Le délégué recevra le champ Texte en cours d'édition en tant qu'argument et le contrôleur Master View le transmet au contrôleur Find.

Tout d'abord, vous devez mettre à jour l'implémentation MasterViewController en ajoutant le code en gras à MasterViewController. m.

#import "MasterViewController h" #import "DétailViewController h" #import "AppDelegate h" #import "Trip h " #import "FindController h" @implementation MasterViewController

Vous devez faire de MasterViewController le délégué textField. Pour ce faire, ajoutez le code en gras à viewDidLoad dans MasterViewController. m.

- (void) viewDidLoad {[super viewDidLoad]; AppDelegate * appDelegate = [[délégué UIApplication sharedApplication]]; soi. title = appDelegate. voyage. destinationName; UIImageView * imageView = [[UIImageView alloc] initWithImage: [appDelegate. destination de destinationImage]]; soi. tableView. backgroundView = imageView; UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: action de soi: @selector (handleSwipeGesture:)]; swipeGesture. direction = UISwipeGestureRecognizerDirectionLeft; [soi. voir addGestureRecognizer: swipeGesture]; soi-même. findText. déléguer = soi-même; }

Vous pouvez maintenant implémenter la méthode textFieldShouldReturn: delegate en ajoutant le code à MasterViewController. m.

Vous remarquerez quelques erreurs de Live Issue ici. Vous devrez ajouter la propriété findLocation au FindController.

- (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder]; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {FindController * findController = [[UIStoryboard storyboardWithName: @ "Paquet_principal" bundle: nil] instantiateViewControllerWithIdentifier: @ "Find"]; findController. findLocation = textField. texte; DetailViewController * currentDetailViewController; currentDetailViewController = [auto. splitViewController. viewControllers lastObject]; if (currentDetailViewController.masPopoverController! = nil) [currentDetailViewController. masterPopoverController dismissPopoverAnimated: OUI]; soi. splitViewController. delegate = findController; findController.popOverButton = currentDetailViewController. popOverButton; findController. masterPopoverController = currentDetailViewController. masterPopoverController; NSMutableArray * controllers = [NSMutableArray arrayWithObjects: (self.scenlViewController. ViewControllers) [0], findController, nil]; soi. splitViewController. viewControllers = controllers;} else {FindController * findController = [[UIStoryboard storyboardWithName: @ bundle "Main_iPhone": nil] instantiateViewControllerWithIdentifier: @ "Rechercher"]; findController. findLocation = textField. texte; [soi. navigationController pushViewController: findController animé: YES];} return YES;}

La première chose que le code fait pour vous est d'envoyer un message au champ Text lui demandant de démissionner comme premier répondeur:

[textField resignFirstResponder];

Cela a pour effet secondaire de rejeter le clavier.

Ce que vous faites ensuite est un autre cas où ce qui se passe dépend de l'exécution de votre application sur un iPad ou un iPhone.

Si vous utilisez un iPad, vous instanciez FindController à partir de Main_iPad. storyboard.

FindController * findController = [[UIStoryboard storyboardWithName: @ bundle "Main_iPad": nil] instantiateViewControllerWithIdentifier: @ "Rechercher"];

Vous affectez ensuite le texte de textField à la propriété findController findLocation (que vous ajouterez bientôt au FindController).

findController. findLocation = textField. texte;

Vous rejetez ensuite le popover.

DetailViewController * currentDetailViewController; currentDetailViewController = [auto. splitViewController. viewControllers lastObject]; if (currentDetailViewController.masPopoverController! = nil) [currentDetailViewController. masterPopoverController dismissPopoverAnimated: OUI];

Ensuite, vous affectez les propriétés popOverButton et masterPopoverController et faites de FindController le délégué du contrôleur de vue partagée.

soi-même. splitViewController. delegate = findController; findController. popOverButton = currentDetailViewController. popOverButton; findController. masterPopoverController = currentDetailViewController. masterPopoverController;

Ensuite, vous faites simplement de FindController le nouveau contrôleur de vue de détail dans la propriété viewControllers du contrôleur de vue partagée.

NSMutableArray * controllers = [NSMutableArray arrayWithObjects: (self.scenlViewController. ViewControllers) [0], findController, nil]; soi. splitViewController. viewControllers = contrôleurs;

Notez que s'il s'agit d'un iPhone, instanciez le FindController, assignez la propriété findLocation et insérez-la dans la pile du contrôleur de navigation, ce qui entraîne la mise en place de la vue.

FindController * findController = [[UIStoryboardstoryboardWithName: @ bundle "Main_iPhone": nil] instantiateViewControllerWithIdentifier: @ "Rechercher"]; findController. findLocation = textField. texte; [soi. navigationController pushViewController: findController animé: OUI];

Vous retournez finalement YES pour que le champ Text implémente son comportement par défaut.

Implémentation du Find Find pour le géocodage dans votre application iOS - Factures

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...