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
já
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