Como implementar o controlador achado para geocodificação em seu aplicativo ios

Para sua funcionalidade de geocodificação para trabalhar em seu aplicativo iOS, você vai precisar fazer várias coisas no controlador Find. A maioria do que você precisa fazer gira em torno de obter o texto que o usuário digita. Você também terá que ter o texto geocoded e ter a localização geográfica implementado como um Anotação

pelo Viagem modelo de objeto, que o controlador Find irá adicionar ao mapa.

Para acessar o texto, você primeiro precisa criar uma saída para o campo de texto. Siga esses passos:

  1. Selecione Main_iPad.storyboard no navegador do projeto.

  2. Selecione o controlador Master View em Document Outline.

    Xcode`s assistant editor button.

  3. Selecione o Assistente no seletor Editor, e se o MasterViewController.h arquivo não aparecer, navegue até ele usando a barra de salto.

  4. No Document Outline, abra o triângulo de divulgação para a segunda seção Table View no Master View Controller - Scene Mestre para chegar à célula Table View.

  5. Abra o Table View celular para revelar o conteúdo Ver segurando o rótulo Localizar e texto.

  6. Abra triângulo dessa célula para exibir o campo de texto, e depois controlar-arrastar do campo textos Sem Fronteira Estilo para a interface de exibição mestre controlador (no editor Assistant) entre o @interface e -d diretivas de compilador, e adicionar uma saída chamado findText.

    Criando uma tomada em um aplicativo`s interface.

Esta é outra maneira de criar a saída.

UMA UITextField objeto é um controle que exibe texto editável e envia uma mensagem ao seu delegado quando o usuário pressiona a tecla Enter. Você normalmente usa um UITextField objeto para permitir que o usuário digite pequenas quantidades de texto e, em seguida, fazer algo com ele - como a busca por algo ou adicionar um novo contato.

O ícone do campo de texto no Xcode.

Selecione o campo de texto, selecione o editor padrão no seletor do Editor na barra de ferramentas Xcode, e, em seguida, abrir a área de Utility. Você pode definir uma série de propriedades do campo de texto no Inspetor de Atributos.

Pré-visualização de um aplicativo no Xcode.

Como você sabe quando o usuário inseriu algum texto? Além disso, como você começa o teclado para mostrar, e depois esconder?

Video: (RE-UPLOAD) FBI iOS hacking tools released, Big PS4 update, Android Progressive Web Apps

Quando um usuário toca em um UITextField, torna-se o primeiro respondedor, eo teclado sobe automaticamente para permitir que o usuário digite o texto - você não tem que fazer uma coisa para que isso aconteça.

Quando o usuário é feito de introduzir o texto, ele bate na tecla Return - a tecla Return cujo rótulo você conseguiu mudar a percorrer.

Quando a tecla Go é aproveitado, o campo de texto determina se ele tem um delegado e se o delegado tem implementado um textFieldShouldReturn: Método - um dos opcional UITextFieldDelegate métodos de protocolo. Se o delegado tenha feito isso, ele envia o delegado do textFieldShouldReturn: mensagem. assim textFieldShouldReturn: é o lugar para capturar o texto.

Para capturar o texto e enviá-lo para o FindController, você precisa se tornar delegado do campo de texto e implementar o textFieldShouldReturn: método. Mas antes de fazer isso, você precisa de fazer mais uma coisa em Interface Builder.

Video: Your First iOS Enterprise App: From Compile to Final Release

Você começar por fazer o MasterViewController uma UITextFieldDelegate. Atualizar MasterViewController.h com o código em negrito para tê-lo adotar o UITextFieldDelegate protocolo.

#import @interface MasterViewController: UITableViewController@property (, nonatomic forte) DetailViewController * detailViewController- @ propriedade (fraco, nonatomic) IBOutlet UITextField * findText - d

O trabalho pesado vai ser feito no textFieldShouldReturn de TextField: delegar método. O delegado será passado o campo de texto que está sendo editado como um argumento, ea vista controlador Master vai passar isso para o controlador Find.

Video: Sago Mini Werkzeugkasten Spiel für Kleinkinder - iOS App



Primeiro, você tem que atualizar o MasterViewController implementação, adicionando o código em negrito para MasterViewController.m.

#importar "MasterViewController.h"#importar "DetailViewController.h"#importar "AppDelegate.h"#importar "Trip.h"#importar "FindController.h"@implementation MasterViewController

Você vai precisar fazer MasterViewController a campo de texto delegar. Para fazer isso, adicione o código em negrito para viewDidLoad dentro MasterViewController.m.

- (Void) viewDidLoad {[Super viewDidLoad] -AppDelegate * appDelegate = [[UIApplication sharedApplication] delegado] -self.title = appDelegate.trip.destinationName-UIImageView * imageView = [[UIImageView alloc] initWithImage: [appDelegate.trip DestinationImage]] -self.tableView.backgroundView = imageView-UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: acção de auto: @selector (handleSwipeGesture:)] - swipeGesture.direction = UISwipeGestureRecognizerDirectionleft; [self.view addGestureRecognizer: swipeGesture] - self.findText.delegate = auto-}

Agora você pode implementar o textFieldShouldReturn: método delegar adicionando o código de MasterViewController.m.

Você notará alguns erros Emissão ao vivo aqui. Você precisará adicionar o findLocation propriedade para o FindController.

- (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder] -se ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {FindController * findController = [[UIStoryboardstoryboardWithName: @"Main_iPad" Bundle: nil] instantiateViewControllerWithIdentifier: @"Encontrar"] -findController.findLocation = TextField.text-DetailViewController * currentDetailViewController-currentDetailViewController = [self.splitViewController.viewControllers LastObject] -se (currentDetailViewController.masterPopoverController = nil!) [CurrentDetailViewController.masterPopoverControllerdismissPopoverAnimated: YES] -self.splitViewController.delegate = findController- findController.popOverButton = currentDetailViewController.popOverButton-findController.masterPopoverController = currentDetailViewController.masterPopoverController-NSMutableArray * = controladores de [NSMutableArray arrayWithObjects: (self.splitViewController.viewControllers) [0], findController, nil] -self.splitViewController.viewControllers = controllers-} else {findController * findController = [[UIStoryboardstoryboardWithName: @"Main_iPhone"Bundle: nil] instantiateViewControllerWithIdentifier: @"Encontrar"] -findController.findLocation = textField.text- [self.navigationControllerpushViewController: findController animado: YES] -} return do Sim}

A primeira coisa que o código faz para você é para enviar uma mensagem para o campo de texto pedindo-lhe para renunciar como socorrista:

[TextField resignFirstResponder] -

Isto tem o efeito colateral de demitir o teclado.

O que você faz em seguida é outro caso em que o que acontece depende se o seu aplicativo está sendo executado em um iPad ou iPhone.

Se você está rodando em um iPad, você instancia FindController a partir de Main_iPad.storyboard.

FindController * findController = [[UIStoryboard storyboardWithName: @"Main_iPad" Bundle: nil] instantiateViewControllerWithIdentifier: @"Encontrar"] -

Você, então, atribuir o texto de campo de texto ao FindController findLocation propriedade (que você vai adicionar em breve para o FindController).

findController.findLocation = textField.text-

Você, então, demitir o popover.

DetailViewController * currentDetailViewController-currentDetailViewController = [self.splitViewController.viewControllers LastObject] -se (currentDetailViewController.masterPopoverController = nil!) [CurrentDetailViewController.masterPopoverControllerdismissPopoverAnimated: YES] -

Em seguida, você atribuir o popOverButton e masterPopoverController Propriedades e fazer FindController Split Ver delegado controlador.

self.splitViewController.delegate = findController-findController.popOverButton = currentDetailViewController.popOverButton-findController.masterPopoverController = currentDetailViewController.masterPopoverController-

Então você simplesmente fazer FindController a nova Visão Detalhada controlador no Dividir a visualização controlador de viewControllers propriedade.

NSMutableArray * = controladores [arrayWithObjects NSMutableArray: (self.splitViewController.viewControllers) [0], findController, nil] -self.splitViewController.viewControllers = controllers-

Note-se que, se for um iPhone você está lidando com, você instanciar o FindController, atribuir o findLocation propriedade, e empurre-o na pilha de controlador de navegação, o que faz com que a vista a deslizar no lugar.

FindController * findController = [[UIStoryboardstoryboardWithName: @"Main_iPhone" Bundle: nil] instantiateViewControllerWithIdentifier: @"Encontrar"] -findController.findLocation = textField.text- [self.navigationControllerpushViewController: findController animado: YES] -

Você finalmente voltar SIM para ter o campo Texto implementar o seu comportamento padrão.


Publicações relacionadas