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!

Foi útil?

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];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top