Pergunta

Tenho um aplicativo para iPhone que estou construindo no XCode 4.3 com Storyboard.Eu tenho um controlador de visualização "raiz" com duas (2) sequências para um controlador de visualização contendo um UIWebView.Quero ser capaz de identificar o segue (já defini identificadores exclusivos para ambos os segues) para poder "enviar" o conteúdo correto para o UIWebView, com base em qual segue foi ativado no controlador de visualização "raiz".

Acho que tenho que usar o método "prepareForSegue", mas não sei para onde iria.Onde posso descobrir como lidar com duas segues indo para o mesmo controlador de visualização?(Pesquisei no Google e não encontrei nada apropriado para minha situação).

Aqui está o código que estou usando:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"helpSegue"]) {
        NSLog(@"helpSegue");
    }
    else if ([segue.identifier isEqualToString:@"reportSegue"]) {
        NSLog(@"reportSegue");
    }
}
Foi útil?

Solução

Você não vai ligar -prepareForSegue:sender:, você o implementará em seu controlador de visualização.Na substituição desse método, você pode verificar o segue identifier propriedade (a segue é passada como parâmetro):

if ([segue.identifier isEqualToString:@"Segue Numero Uno"]) {
    // do something here
}

Isso permite que você execute algum tipo de ação dependendo de qual segue está causando a transição.Você pode definir o identificador para cada segue no editor de storyboard.

Atualizar: Com base no código fornecido em seu comentário (que adicionei à sua pergunta), você tem a ideia certa agora.Neste ponto, é apenas uma questão de depuração à moda antiga.Algumas coisas para verificar:

  • O controlador de visualização está no seu storyboard (ou seja,aquele ao qual as segues em questão levam) configurado como uma instância da classe que implementa este -prepareForSegue:sender:?Verifique o tipo do controlador no storyboard.

  • Faça as strings que você usa em seu código exatamente correspondem aos identificadores que você definiu para suas sequências no storyboard?Letras maiúsculas, ortografia, pontuação e espaços em branco contam.

  • É seu -prepareForSegue:sender: método sendo chamado?Coloque um ponto de interrupção lá e depure.Se estiver sendo chamado, qual é o identificador do segue isso passou?Se não estiver sendo chamado, o controlador de visualização no storyboard não possui a classe correta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top