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

Шрифт
Фон

O que precisa ser feito então é informar que, a partir do toque no botão Sobre este

aplicativo, o controlador Sobre seja adicionado. Anteriormente a storyboards este

processo era feito manualmente, através da criação de uma action para o botão, e

a manual instanciação do controlador. Já com storyboards a história fica bem mais

fácil, podendo ser feito tudo visualmente pelo editor, sem qualquer necessidade de

código.

Clique no botão Sobre este aplicativo, segure CTRL e clique e arraste em direção

ao controlador Sobre, de tal forma que sua área fique azulada, e então solte o clique.

Isso fará com que uma conexão - ou melhor, a Segue - seja feita do botão para este

controlador, conforme mostra a imagem 5.6. Na tela popup que aparecer, selecione

o item Push.

79

5.1. Projeto e conceitos gerais

Casa do Código

Figura 5.6: Criar Segue do botão para o controlador

Rode o aplicativo e clique no botão. O que aconteceu? Provavelmente o seguinte

erro:

Terminating app due to uncaught exception 'NSGenericException', reason:

'Push segues can only be used when the source controller is managed by

an instance of UINavigationController.'

Esta mensagem de erro está dizendo que eventos Segue do tipo Push, que foi

o que selecionamos no popup na hora de fazer a conexão, precisam que exista um

UINavigationController associado, caso contrário não é possível navegar en-

tre as Scenes. Para resolver isso é bem simples: selecione o controlador que tem os

botões, já que ele é a primeira tela do aplicativo, e então vá ao menu Editor ->

Embed In -> Navigation Controller, que o Xcode irá adicionar e configu-

rar ele para nós. O resultado deverá ficar como o da imagem 5.7

80

Casa do Código

Capítulo 5. Storyboards

Figura 5.7: Storyboard após a adição do navigation controller

Como pode ver, o primeiro controlador da storyboard (representado pela seta

mais a esquerda) passou a ser o navigation controller, que na prática é um controla-

dor especial que gerencia a navegação entre outros controladores. Se você selecioná-

lo (lembre-se que para selecionar o controlador é necessário clicar na barra preta)

e abrir o Attributes Inspector ( View -> Utilities -> Show Attributes

Inspector) verá que ele está marcado como sendo a Scene inicial, conforme mos-

tra a imagem 5.8.

81

5.1. Projeto e conceitos gerais

Casa do Código

Figura 5.8: Navigation controller definido como sendo o primeiro

Rode o aplicativo novamente e clique no botão, e veja que agora ele funciona

corretamente.

Ver a conexão e tipo de transição

Se você clicar na seta entre dois controladores, poderá visualizar o botão com o

qual a ação está associada, conforme mostra a imagem 5.9, onde o botão é identifi-

cado com uma seleção azul. De quebra, no Attributes Inspector é possível modificar

o tipo de transição, que no nosso caso foi definida como Push.

82

Casa do Código

Capítulo 5. Storyboards

Figura 5.9: Verificar com qual botão a transição da Segue está associado

Título dos controladores

Como agora temos um navigation controller, ele por padrão adiciona uma barra

superior nos controladores, onde é possível definir um título para a tela. Além disso,

no canto superior esquerdo ele também coloca automaticamente um botão para vol-

tar para a tela anterior, como você já deve ter notado. Seguindo a imagem 5.10, dê um

duplo clique na região de título indicado pela seta, e escreva um texto curto e claro

para identificar o controlador em questão - por exemplo, Início e Sobre. Veja

ainda que, na seção Navigation Item do Attributes Insepector, existem três campos

de texto, sendo que os mais interessantes são Title, para o texto que irá aparecer na

barra (é o mesmo texto definid pelo duplo clique) e Back Button, que é o texto que

irá ser utilizado no botão para retornar a tela anterior - caso nenhum valor seja infor-

mado, o navigation controller irá automaticamente utilizar o título da tela anterior.

Obs: o texto do botão Back Button deve ser definido no controlador anterior, ou

seja, aquele para qual a navegação irá retornar. Faça alguns testes para se acostumar

com o funcionamento.

83

5.2. Adicionar os demais controladores

Casa do Código

Figura 5.10: Propriedades de navegação

5.2

Adicionar os demais controladores

Agora que sabemos o funcionamento de storyboards, vamos adicionar os demais

controladores. O processo é igual para todos, mudando apenas o título de cada con-

trolador. Faça assim:

1) Adicione na storyboard um componente do tipo View Controller

localizado na Object Library ( View -> Utilities -> Show Object

Library)

2) Crie a Segue do botão Listar Compromissos para este novo controlador (clique

no botão e depois CTRL + clique e arraste), escolhendo Push como

ação. Obs: isso não pode ser feito se o zoom estiver habilitado, o Xcode não

permite

3) Coloque um título na barra superior deste controlador (por exemplo, Listar)

4) Repita os passos 1 a 3 para a tela Inserir novo compromisso, com o título Inserir

Neste momento o seu resultado deverá estar como o da imagem 5.11. Rode o

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

0
Шрифт
Фон

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