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

Шрифт
Фон

aplicativo e navegue para certificar-se que tudo funciona.

84

Casa do Código

Capítulo 5. Storyboards

Figura 5.11: Propriedades de navegação

A tela de Listar e seus controladores, via código

A tela Listar permite duas ações adicionais: editar e ver os detalhes de um de-

terminado registro. Abra o controlador com o título Listar e adicione dois novos

botões, um com o texto Editar e outro com o texto Ver Detalhes, porém desta

vez não crie as Segues ainda, pois iremos fazer de uma maneira alternativa, via có-

digo. Aprender a fazer via código é útil quando for necessário navegar para outra

Segue de uma maneira não tradicional, como a interação com a célula de uma Table

View, ou um botão com ações condicionais (como um botão Login que depois vira

85

5.2. Adicionar os demais controladores

Casa do Código

Logout).

Existem duas coisas que precisam ser feitas: a primeira é que a Segue deve ser

criada sem estar associada com um botão específico, mas sim de controlador para

controlador. Isso é feito criando a Segue através do item View Controller na

barra presta, utilizando a mesma técnica de CTRL+clique e arraste, con-

forme mostra a imagem 5.12.

Figura 5.12: Criando a Segue sem associar ela a um botão

Repita o processo mais uma vez, agora para o outro controlador (lembre-se: um

para editar, e outro para ver detalhes). O resultado desta parte deverá estar como a

imagem 5.13.

86

Casa do Código

Capítulo 5. Storyboards

Figura 5.13: Segues criadas da tela de Listar para Editar e Detalhes, sem associação

com

algum botão

87

5.2. Adicionar os demais controladores

Casa do Código

Para que seja possível navegar entre Segues via código é necessário adicionar

identificadores únicos a elas. Para isso, clique na seta que une as Segues e preen-

cha o campo Identifier no Attributes Inspector, conforme mostra a imagem 5.14.

Lembre-se de utilizar nomes únicos para cada segue. Como sugestão, utilize uma

combinação do nome da Segue de origem e de destino. No caso deste exemplo, Lis-

tar -> Editar deve ser chamada de listarParaEditarSegue e Listar -> De-

talhes de listarParaDetalhesSegue.

Figura 5.14: Adicionar identificar a uma Segue

Até agora todo o trabalho que realizamos foi unicamente na storyboard, sem

precisar criar uma única classe ou linha de código. Contudo, sabemos que na vida

real as regras de negócio são escritas em Objective-C, e para isso é necessário ter

uma classe customizada associada ao controller, como já vimos diversas vezes no

livro. Como agora queremos ir da Segue Listar para outras duas, vamos criar uma

classe especial para ela.

Vá ao menu File -> New -> File..., selecione Objective-C Class e cli-

que em Next. No campo Class insira o valor ListarViewController, e no campo

Subclass of certifique-se que a opção UIViewController esteja seleciona, pois

queremos criar um controlador customizado. As opções Targeted for iPad e With

XIB for User Interface devem estar desmarcadas.

Agora volte ao storyboard, selecione a Segue Listar, abra o Identity Inspector

( View -> Utilities -> Show Identity Inspector) e na seção Cus-

88

Casa do Código

Capítulo 5. Storyboards

tom Class insira o valor ListarViewController, conforme mostra a imagem

5.15.

Figura 5.15: Identificador da Segue

Tendo feito isso, abra o Assistant Editor ( CTRL+ENTER) e crie as acti-

ons para os dois botões. Como sugestão, para o de Editar chame a action de

abrirEditarScene, e abrirDetalhesScene para o de Detalhes. O arquivo

ListarViewController.h deverá estar como o código abaixo:

# import <UIKit / UIKit.h>

@interface ListarViewController : UIViewController

- (IBAction)abrirEditarScene:(id)sender;

- (IBAction)abrirDetalhesScene:(id)sender;

@end

Todo

controlador

contêm

um

método

chamado

performSegueWithIdentifier, que serve para navegar dele para ou-

tra Segue utilizando o identificador definido anteriormente.

O arquivo

ListarViewController.m deve conter a implementação dos métodos abrir

conforme abaixo:

- (IBAction)abrirEditarScene:(id)sender {

[self performSegueWithIdentifier:@"listarParaEditarSegue"

sender:sender];

}

- (IBAction)abrirDetalhesScene:(id)sender {

[self performSegueWithIdentifier:@"listarParaDetalhesSegue"

89

5.3. Navegar de volta diretamente para a Segue inicial

Casa do Código

sender:sender];

}

Rode o aplicativo e interaja com os botões para ver o resultado.

5.3

Navegar de volta diretamente para a Segue ini-

cial

Uma das coisas atreladas ao uso de Navigation Controllers é que, a medida em que

navegamos de um controlador para outro, eles vão sendo colocados em uma pilha,

um em cima do outro, e para voltar para as telas anterior é preciso ir clicando no

botão Voltar (aquele do canto superior esquerdo). Só que quando queremos voltar

para algum mais distante, é necessário fazer isso várias vezes.

Com storyboards existe uma maneira de tornar este processo um pouco mais

fácil, através do uso da ação de Saída, do termo em inglês Exit. Na verdade, o

termo utilizado pela documentação é Unwind Segue, porém no Xcode a palavra

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

0
Шрифт
Фон

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