pushViewController depuração

votos
1

Estou tentando (do meu 3ª criança na heirachy) para carregar a exibição de raiz com o seguinte. Isso não funciona e eu recebo o seguinte erro quando o código abaixo é executado.

-[DetailViewController clickButton:]: unrecognized selector sent to instance 0x1161e00' 

Código:

 MapViewController *dvController = [[MapViewController alloc] initWithNibName:@MapView bundle:[NSBundle mainBundle]];
        [self.navigationController pushViewController:dvController animated:YES];
        [dvController release];
        dvController = nil;

Este mesmo código exato funciona em outros pontos de vista, alguma idéia de como depurar isso.

Publicado 19/05/2009 em 19:44
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

O código que você escreveu para criar o MapViewController e empurrá-lo para a pilha controlador de vista está correto.

O erro selector não reconhecido está lhe dizendo que você está enviando está tentando chamar um método (chamado clickButton :) que não existe.

Eu suspeito um erro de ortografia. Presumo que você provavelmente terá um botão definido que chama o código para criar a nova exibição. O método deve ficar assim:

-(void) clickButton: (id) sender {
    MapViewController *dvController = [[MapViewController alloc] initWithNibName:@"MapView"  bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
}

Gostaria de verificar que você tem o ": (id) sender" parte. Eu cometi o erro antes de implementar um - método (void) clickButton {}, mas tinha a mensagem realmente enviando um parâmetro bem.

Respondeu 20/05/2009 em 05:58
fonte usuário

votos
0
  1. Se você criou o botão de programação e definir o destino como clickButton, certifique-se o método clickButton está presente

  2. O método clickButton (de acordo com o erro) deve tomar em um argumento. Assim, a definição do método será

    • (IBAction) clickButton: (id) remetente;
  3. Se você mapeou o IBAction para um evento em IB, você pode omitir o: (id) parte remetente

  4. Para carregar o controlador de exibição de raiz a partir de qualquer ponto de vista em uma-base navegação aplicação, a utilização

    [[Auto navigationController: popToRootViewControllerAnimated: SIM];

Respondeu 20/05/2009 em 14:30
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more