Steil Rafael - iOS: Programe para iPhone e iPad стр 17.

Шрифт
Фон

nado como ação de um botão na classe OpcoesController. Siga os seguintes

passos:

Abra o arquivo OpcoesController.xib e adicione um botão com o texto

Fechar, e conecte uma action chamada close no arquivo OpcoesController.h

(lembre-se de usar o Assistant Editor para ver o arquivo

.xib e .h lado a

lado). Em seguida, abra o arquivo OpcoesController.m e chame o método

dismissViewControllerAnimated:completion, conforme abaixo:

- (IBAction)close:(id)sender {

[self dismissViewControllerAnimated:YES completion:nil];

}

Rode novamente o aplicativo clique no botão Fechar, para que o controlador

seja fechado.

4.3

Navegar por diferentes telas com o UINavigati-

onController

Uma das formas de navegação mais comum em aplicativos iOS é aquela em que, feita

uma determinada ação, uma nova tela desliza da direita para a esquerda por cima da

anterior. Depois, através de um toque em um botão no canto superior esquerdo

(geralmente um botão escrito Back ou Voltar), volta-se para a tela anterior. Ou

seja, é uma navegação hierárquica.

Este tipo de navegação chama-se Controlador de Navegação, ou no termo téc-

nico, UINavigationController. Nos exemplos iremos nos referir a este com-

ponente pelo nome navigation controller, pois é um termo bastante conhecido em

desenvolvimento iOS, e acostumar-se com ele facilitará a busca por informações na

Internet, posteriormente. A figura 4.5 mostra como ele funciona. Ela deve permitir

60

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

que troquemos de uma tela para outra, de uma funcionalidade para outra, através de

uma interface simples.

Figura 4.5: Funcionamento de um UINavigationController

Navigation controllers são peças muito importantes em aplicações iOS, pois per-

mitem a transição de um controller para outro sem que haja perda de estado. Em

outras palavras, o aplicativo literalmente vai empilhando os controladores, sem tirá-

los da memória, permitindo que a navegação reversa seja feita de maneira natural.

Gerenciamento de memória de controladores

Em condições normais de funcionamento, os controladores que estão

na hierarquia de um Navigation Controller são sempre mantidos em me-

mória. Porém, não devemos trabalhar com a premissa de que isso será

sempre verdade, pois no caso de falta de memória, o iOS pode descar-

regar alguns deles, recriando-os quando necessário.

Para entender melhor o funcionamento do UINavigationController, va-

mos criar um aplicativo de um catálogo de empresas, no qual é possível adicionar

novos registros e realizar configurações.

Crie um novo aplicativo do tipo Single View Application, nos mesmos mol-

des dos exemplos anteriores, e chame-o de NavigationControllerDemo. Você

deverá ter um projeto padrão, com o

AppDelegate e uma classe chamada

61

4.3. Navegar por diferentes telas com o UINavigationController

Casa do Código

ViewController. Repare que este nome, ViewController, que o Xcode cria junto

com o projeto, é apenas para nossa conveniência, porém você não precisa

ficar amar-

rado a ele.

Para começar, vamos mudar o nome da classe ViewController para algo se-

manticamente melhor. Uma das maneiras de fazer isso é renomear manualmente os

arquivos ViewController.m e .h, porém isso dá muito trabalho e corremos o

risco de esquecer alguma coisa. Uma maneira mais inteligente é utilizar a funciona-

lidade de refatoração do Xcode, que faz para nós todo trabalho pesado.

Abra o arquivo ViewController.m e, na linha de definição da classe (onde

tem @implementation ViewController) clique com o botão direito e seleci-

one a opção Refactor -> Rename..., conforme a figura 4.6.

Na caixa de diálogo que abrir, informe o valor RootController no campo de

texto, e deixe marcada a opção Rename related files, para que o Xcode renomeie

todos os arquivos que tenham relação ao original ViewController.

Ao clicar no botão Preview, o Xcode irá mostrar um resumo das operações

que serão realizadas. Clique no botão Save, e caso o Xcode mostre uma mensagem

perguntando se deve fazer backup do conteúdo, clique em Enable.

62

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

Ao término da operação, repare que tanto os arquivos em disco como

as próprias definições da classe

ViewController foram renomeadas para

RootController.

4.4

Preparar a tela principal

Agora precisamos colocar botões no RootController para chamar os outros con-

troladores, um para a fictícia tela de adicionar empresas ao catálogo, e outro para a

adivinhem também fictícia tela de configurações. O objetivo principal desta

seção é demonstrar como navegar de um lugar para o outro, e não na implementação

real de um catálogo propriamente dito.

Abra o arquivo Main.storyboard e coloque 2 botões, o primeiro como texto

Adicionar, e o segundo com o texto Configurações, conforme mostra a figura 4.6.

63

4.4. Preparar a tela principal

Casa do Código

Figura 4.6: Desenho da tela principal do aplicativo

64

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке