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

Шрифт
Фон

das.

Controladores (do inglês controllers) são classes normais, e portanto podem

conter qualquer tipo de lógica e regra de negócios, embora ao menos teorica-

mente o ideal é que sejam usados como um intermediário, como um facilitador

de trabalho entre a camada visual (as views) e a lógica de negócios. Na prática, mui-

tos desenvolvedores acabam misturando as coisas em um único lugar, o que pode

levar a dificuldades para manter e evoluir o aplicativo a longo prazo.

Casa do Código

O código-fonte deste capítulo está disponível nas pastas ViewControllerAni-

mations e NavigationControllerDemo (lembrando que o endereço do site com os

códigos está na introdução do livro).

O objetivo deste capítulo é mostrar diferentes maneiras de interagir entre View

Controllers, que são as classes responsáveis por coordenar o trabalho em aplica-

ções iOS, tais como redimensionamento de views, eventos de rotação do dispositivo

e navegação entre as diversas partes do aplicativo. A figura 4.1 mostra o papel de um

controlador frente a diversas outras partes de um aplicativo.

Figura 4.1: Papel do controlador. Fonte: Apple

Controladores por si só não são componentes

visuais. Pense neles como um es-

queleto, que embora não possa ser visto, é vital para que tudo se encaixe. A interface

com o usuário é feita através de views, tanto que ele tem a sua própria propriedade

chamada view.

52

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

Controladores e Storyboards

Todo o conteúdo apresentado neste capítulo é fundamental para o

correto entendimento de um dos principais pilares de aplicações iOS, e

tem direta ligação com o conteúdo do próximo capítulo, 5.

4.1

Passando de um controlador para outro

Existem diversas formas de fazer a transição entre controladores, como apresentá-

los de forma modal, ou então utilizando um navegador especializado. Veremos essas

duas abordagens neste capítulo.

Controladores do tipo Modal funcionam da mesma maneira como janelas mo-

dais em aplicativos desktop, que é aquele comportamento no qual, quando um com-

ponente desses é apresentado, nada do componente anterior pode ser acessado en-

quanto este não for fechado.

Crie um novo projeto do tipo Single View Application (File -> New -> Pro-

ject -> Single View Application) chamado ViewControllerAnimations e

selecione iPhone como Device. O Xcode irá criar um projeto com os arquivos

AppDelegate.m e .h, e outra classe chamada ViewController.m e .h, além

do arquivo Main.storyboard.

Abra o arquivo Main.storyboard, e adicione quatro componentes do tipo

Button, com os textos Dissolver, Virar página, Subir vertical e Girar horizontal

estas serão as operações que realizaremos.

53

4.1. Passando de um controlador para outro

Casa do Código

Figura 4.2: Localização do Round Rect Button, no Xcode

A tela deverá ficar como a da figura 4.3.

54

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

Figura 4.3: Tela com os botões posicionados

O próximo passo é conectar as ações destes botões. Abra o Assistant Editor (

View -> Assistant Editor -> Show Assistant Editor, ou Option +

Command + Enter), e conecte uma ação para cada um dos botões no arquivo

ViewController.h, da seguinte forma:

Texto: Dissolver, nome do método: showDissolve

Texto: Virar página, método: showPageCurl

Texto: Subir vertical, método: showVertical

Texto: Girar horizontal, método: showHorizontal

O código do arquivo ViewController.h deverá estar como mostrado abaixo:

55

4.1. Passando de um controlador para outro

Casa do Código

# import <UIKit / UIKit.h>

@interface ViewController : UIViewController

- (IBAction)showDissolve:(id)sender;

- (IBAction)showPageCurl:(id)sender;

- (IBAction)showVertical:(id)sender;

- (IBAction)showHorizontal:(id)sender;

@end

Cada um dos métodos que iremos implementar terá como tarefa mostrar ou-

tro controlador ao usuário, sobrepondo o principal temporariamente. A forma que

veremos é uma das várias possíveis maneiras, e mais adiante será mostrado como

utilizar a classe UINavigationController para fazer a navegação entre eles de

maneira organizada e gerenciável.

Para que os botões possam abrir um novo controlador é necessário primeiro criá-

los. Para tanto, acesse o menu File -> New -> File... e selecione o template

Objective-C class, e clique no botão Next. Na próxima tela devemos informar o nome

da classe a ser criada, e qual será a classe pai. Chame-a de OpcoesController, e em

Subclass of selecione a opção UIViewController. Marque também o checkbox

With XIB for user interface, conforme mostrado na figura 4.4.

56

Casa do Código

Capítulo 4. Coordenando o trabalho com controladores

Figura 4.4: Criando o controlador para a tela de opções

Quando o Xcode perguntar onde o arquivo deverá ser salvo, selecione a pasta

raiz do projeto, no mesmo lugar onde estão os outros arquivos. Você deverá ter o

arquivo OpcoesController nas extensões .h, .m e .xib.

Reparem bem que todos os arquivos têm o mesmo nome, mudando a extensão.

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

0
Шрифт
Фон

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