Domanda

sto spingendo a qualche viewcontrollers con la mia UINavigationController e quando sono sulla mia terza UISubViewController ho codificato per 'popToRootViewController' e pop di schiena, ma le navigationbar-voci spingere al 2 ° View Controller non al 1 ° ..

  • ho provato con e senza animazione, ma nulla è gonna cambiamento.
  • ho cercato di dire self.navigationController.navigationBar pop indietro, ma non faccio nulla da me bar.

Grazie per l'aiuto ..

È stato utile?

Soluzione

Sono un po 'confusa a vostra domanda, ma credo che questo dovrebbe aiutare. Per quanto ne so non si può avere il pulsante "indietro" su un UINavigationController risalgono a più di 1 pop. Quindi, ciò che si fa è si deve aggiungere un altro pulsante che fa la funzione popToRootViewController. Provare qualcosa di simile:

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

self.navigationItem.rightBarButtonItem = newButton;

In questo modo aggiungere un pulsante a destra sul controller di navigazione. Il passo successivo è quello di aggiungere una funzione chiamata ciò che il nome nell'azione (in questo caso ha bisogno di essere chiamato "homeAction"). Questo sembra in questo modo:

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

Questo dovrebbe coprire la parte posteriore pop alla radice del controller dove mai si è in pila. Avrete anche per il metodo IBAction al file .h ma diverso da quello che dovrebbe fare tutto quello che volete.

Altri suggerimenti

a meno che non si sta facendo qualcosa di strano con la serie di View Controller sulla navigationController, il metodo dovrebbe essere:

[self.navigationController popToRootViewControllerAnimated:YES];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top