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

Шрифт
Фон

de uma determinada tela, e a conexão com o código-fonte deve ser feita manual-

mente. Existem duas formas distintas de fazer isso:

1) Usando o mini-wizard do Xcode, que faz todo o trabalho pesado (já utilizada

em capítulos anteriores)

2) Da forma tradicional (como era até o Xcode 3)

99

6.3. Conectando os componentes com o código

Casa do Código

Dependendo do tamanho do seu monitor, a quantidade de painéis abertos no

Xcode pode tornar a tela bastante poluída, portanto pessoalmente costumo fazer o

seguinte:

Abra o Assitant Editor (View -> Assistant Editor -> Show Assistant Editor)

Feche o painel Navigator (View -> Navigators -> Hide Navigator)

Abra o painel Utilities (View -> Utilities -> Show Utilities)

Lembrando que esta é apenas uma configuração sugerida, porém você deve tra-

balhar da maneira que achar mais produtivo e confortável. Contudo, para as expli-

cações abaixo assume-se que a configuração de telas sugerida é a que estará sendo

utilizada.

A primeira maneira já vimos como fazer nos capítulos anteriores, que é aquela

onde seguramos CTRL e arrastamos uma linha do componente até o arquivo .h. A

segunda maneira consiste em primeiro declarar manualmente o código relevante no

arquivo .h, para em seguida realizar as conexões.

Com os arquivos Main.storyboard e ViewController.h abertos lado a

lado (veja a imagem 6.3), comece editando o arquivo ViewController.h para que

fique conforme a listagem abaixo:

1 @interface ViewController : UIViewController

2 @property (nonatomic, weak) IBOutlet UITextField *downloadField;

3 -(IBAction)startDownload:(id)sender;

4 @end

Na linha 2 declaramos o campo de texto que será usado para informar a URL

do arquivo a baixar, e na linha 5 é declarada a assinatura do método para iniciar o

download em si.

100

Casa do Código

Capítulo 6. Realizando operações com a Internet

Figura 6.3: Main.storyboard e ViewController.h lado a lado

Agora faça os seguintes passos:

Selecione o text field no arquivo Main.storyboard

Abra o painel Connections, através do menu View -> Utilities ->

Show Connections Inspector

No painel Connections, clique e arraste a bolinha New Referencing Outlet

para cima da declaração do UITextField no arquivo .h

Veja a figura 6.4 para referência.

101

6.3. Conectando os componentes com o código

Casa do Código

Figura 6.4: Passos para conectar

o Outlet ao text field

Dessa forma, conectamos a propriedade downloadField que foi declarada no

arquivo .h com o componente visual, permitindo manipulá-lo da maneira que for

necessária. Caso contrário, o text field seria apenas um artefato puramente visual,

sem qualquer utilidade.

O próximo passo é conectar a ação do botão que realiza o download. Os proce-

dimentos são muito parecidos com o de conectar o text field, com a diferença que

usaremos a IBAction. Os passos são:

Selecione o botão no arquivo Main.storyboard

No painel Connections aparecerá um grupo chamado Send Events, com uma

série de eventos possíveis que este botão pode receber. O que nos interessa é

o Touch Up Inside, que é o responsável por lidar com um toque (ou clique, se

fosse um aplicativo web ou desktop). Arraste o conector do Touch Up Inside

para cima da declaração da IBAction criada anteriormente. Se você fizer certo,

irá aparecer um box dizendo Connect Action

Veja a figura 6.5 para referência.

102

Casa do Código

Capítulo 6. Realizando operações com a Internet

Figura 6.5: Conectando a ação do botão de download

Repita

o

mesmo

procedimento

para

os

componentes

restantes:

a

barra de progresso ( UIProgressView) e o indicador de atividade (

UIActivityIndicatorView). Para a primeira, utilize o nome progressBar, e

para o segundo, loading.

Após tudo isso, o código do arquivo ViewController.h deverá estar como o

exemplo abaixo:

@interface ViewController : UIViewController

@property (nonatomic, weak) IBOutlet UITextField *downloadField;

@property (nonatomic, weak) IBOutlet UIProgressView *progressBar;

@property (nonatomic, weak) IBOutlet UIActivityIndicatorView *loading;

-(IBAction)startDownload:(id)sender;

@end

Volte

para

o

Standard

editor

(

View -> Standard Editor ->

Show Standard Editor) e abra o arquivo

ViewController.m (COM-

MAND+SHIFT+O) para implementar o corpo do método do botão de download.

Isso é necessário porque criamos a conexão dele manualmente anteriormente. Veja

no arquivo .m que o método -(IBAction)startDownload:(id)sender não

existe no arquivo. Em qualquer lugar, implemente-o desta maneira:

103

6.4. Realizar a operação de download

Casa do Código

-(IBAction)startDownload:(id)sender {

}

6.4

Realizar a operação de download

A implementação completa do método startDownload: é mostrada abaixo, e é

um pouco mais longa do que os outros códigos que vimos até agora. Contudo, apesar

do tamanho, são poucos os pontos que merecem uma explicação mais detalhada.

1 -(IBAction)startDownload:(id)sender {

2

NSURL *url = [NSURL URLWithString:_downloadField.text];

3

NSURLRequest *request = [NSURLRequest requestWithURL:url];

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

0
Шрифт
Фон

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