Acabei de instalar o Xcode 4.5 para suporte a iOS6 e vi um novo ícone chamado 'Exit' em meu Storyboard, listado em meus controladores de visualização junto com 'First Responder' etc. Um pequeno ícone verde rotulado 'Exit'.
Não consigo encontrar nada nele nem descobrir como pode ser usado.
Alguém sabe alguma coisa sobre isso, como funciona, para que serve?
iphone
objective-c
xcode
ipad
storyboard
Josh Kahane
fonte
fonte
Respostas:
Isso é chamado de " Unwind Segue ". Infelizmente não há documentação para isso até agora, exceto uma breve menção na lista de novos recursos do XCode 4.5 que afirma:
A boa notícia é que há uma sessão da WWDC 2012 explicando essas criaturas (entre outras coisas).
Você pode simplesmente fazer login no iOS Dev Center da Apple com os detalhes da sua conta de desenvolvedor e, em seguida, ir para a página de vídeos WWDC 2012 e assistir "Adotando Storyboard em seu aplicativo" (é o quinto a partir do topo). .
Atualização: Aqui estão mais algumas informações sobre o assunto da documentação da Apple
(Do iOS6 docset> Geral> Primeiros passos)
E aqui está um bom exemplo de como você pode implementar um
Outra atualização:
Aqui está uma nota técnica da Apple sobre este tópico.
fonte
exit
botão, selecionando o método que deseja chamar. Você pode encontrar um exemplo aqui (também atualizei minha resposta para incluir o exemplo)Imagine que você tem uma sequência de visualizações em seu storyboard:
A -> ... -> Z
Você deseja ter um botão à vista
Z
que permita ao usuário voltar atéA
.Portanto, o que você precisa fazer é fornecer a visualização que deseja retornar, neste caso
A
, um método de instância que está marcado como aIBAction
e recebe um único parâmetro do tipoUIStoryboardSegue *
. O nome do método e da variável não importa. O que você faz na implementação também não importa. Aqui está um exemplo:Obj-C:
Na
A
's de interface (nãoZ
' s):Na
A
implementação de (nãoZ
):Swift: Fonte de
In
A
(nãoZ
):Agora, dentro do seu storyboard, controlarraste de um elemento
Z
(ou seja, um botão cancelar) paraZ
'sExit
. Ele percorrerá todas as visualizações no topo da hierarquia de visualizações que possuem umIBAction
que aceita apenas uma únicaUIStoryboardSegue *
como uma ação e as relaciona para você escolher.Esperançosamente, isso foi mais direto e útil do que as respostas existentes. Descobri que este link foi particularmente útil, então se houver um detalhe no qual você ainda está confuso depois de ler minha resposta, talvez isso possa ajudá-lo (eu tentei apenas condensar todas as informações úteis deste longo artigo em uma resposta curta): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html
fonte
Consulte também Não é possível conectar o segmento de desenrolar do storyboard, que esclarece os requisitos para dar vida ao ícone Sair. Você deve ter, em um nível mais alto na hierarquia do controlador de visualização, um método que seja:
Marcado como IBAction
Toma um parâmetro que é um UIStoryboardSegue *
Se ambas as condições forem atendidas, o ícone Exit o verá e permitirá que você se conecte a ele arrastando e controlando de um botão no mesmo controlador de visualização.
Agora também postei o exemplo mais simples do mundo aqui:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (corrigido em 12 de julho de 2013)
Isso mostra como é trivialmente fácil seguir e voltar de um controlador de visualização apresentado, ao contrário de todo o trabalho que você teve que fazer anteriormente para passar informações para frente e para trás (as coisas no modelo com um delegado e um protocolo , agora todos podem ser excluídos).
fonte
Basta adicionar uma ligeira sutileza à definição de requisitos que pode ajudar. Isso se baseia em experiências no Xcode 4.6. Descobri que é especificamente e apenas a declaração (!) Do método que permite a resposta desejada de controle e arrasto do Xcode. Aqui estão os requisitos completos:
IBAction
UIStoryboardSegue
*.M
seção de implementação])..M
, exceto a classe appdelegate. (Não vi nenhuma dependência de sua posição na hierarquia do controlador. Você pode adicionar qualquer arquivo antigo e o sistema parece agregar todos os métodos que possuem oUIStoryboardSegue
parâmetro e exibi-los no menu do ícone Sair.) Observe que o controle e arrastar menu irá até mostrar seu método se o método estiver na classe da cena que você está manipulando no editor de storyboard, mas aparecerá sem dois pontos e não parece acionar nenhuma ação em tempo de execução.Exemplo:
-(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;
fonte