Pergunta

Estou empurrando para alguns viewcontrollers com meu uinavigationcontroller e quando estou no meu terceiro uisubviewcontroller, codifiquei para 'poptorootviewcontroller' e ele está de volta, mas Os itens NavigationBar empurram para o 2º controlador de visualização, não para o 1º ..

  • Eu tentei com e sem animar, mas nada vai mudar.
  • Eu tentei dizer self.navigationcontroller.navigationbar se afastar, mas não faz nada no meu bar.

Obrigado pela ajuda ..

Foi útil?

Solução

Estou um pouco confuso com a sua pergunta, mas acho que isso deve ajudar. Até onde eu sei, você não pode ter o botão "Voltar" em um UinavigationController, volte mais de 1 pop. Então, o que você faz é que você precisa adicionar outro botão que faça a função PoptorootViewController. Tente algo assim:

UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(homeAction:)];

self.navigationItem.rightBarButtonItem = newButton;

Isso adicionará um botão à direita no seu controlador de navegação. O próximo passo é adicionar uma função chamada qualquer nome na ação (neste caso, ela precisa ser chamada de "homenagem"). Parece que sim:

-(IBAction)homeAction:(id)sender {
      [self.navigationController popToRootViewControllerAnimated:YES];
}

Isso deve cobrir o pop de volta à raiz do controlador onde quer que você esteja na pilha. Você também precisará o método do ibaction para o seu arquivo .h, mas isso deve fazer tudo o que deseja.

Outras dicas

A menos que você esteja fazendo algo estranho com a matriz de UiviewControllers do NavigationController, o método deve ser:

[self.navigationController popToRootViewControllerAnimated:YES];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top