Como realizar uma segue personalizada animada em storyboard sem NavigationController?
-
28-10-2019 - |
Pergunta
Tenho a necessidade de definir alguns parâmetros antes de executar uma segue, então devo usar CUSTOM SEGUE, certo? Nesse caso, eu faria a transição de uma tela para outra animada, mas não tenho um NavigationController (e não quero inserir um!)
É possível não usar um NavigationController e alterar as visualizações com uma segue personalizada?
Em alternativa, existe a possibilidade de definir uma ação para um botão e executar algumas linhas de código antes de executar uma segue? Eu encontrei esta solução:
-
(IBAction) showDetailView: (id) sender {
// código
.....
[self performSegueWithIdentifier: @ "ShowDetail" sender: sender];
}
mas precisa do controlador de navegação ...
Obrigado a todos e desculpe pelo meu mau inglês!
Solução
Ao criar sua segue no Storyboard, selecione "modal" em vez de "push" (personalizado se refere a um terceiro tipo que não acho que você precise).Selecione a segue e use o inspetor de atributos para dar um nome a ela.No meu exemplo de código, uso o nome "editTitleBlock".
Para definir propriedades no controlador de exibição de destino (que será o controlador de exibição modal), coloque um prepareForSegueMethod em seu primeiro controlador de exibição como este:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"editTitleBlock"]) {
[[segue destinationViewController] setTitleFieldString: @""];
[[segue destinationViewController] setAltitudeFieldString:currentLocation.localizedAltitudeString];
[[segue destinationViewController] setLocationFieldString:currentLocation.localizedCoordinateString];
[[segue destinationViewController] setAuthorString:userName];
if ([[segue identifier] isEqualToString:@"cancel"]) {
// do nothing special
}
}
para voltar ao primeiro uso do controlador de visualização:
[self dismissModalViewController animated:YES];