PopToRootViewController dal 3 ° livello, nessun pop alle voci barbutton
-
28-09-2019 - |
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 ..
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];