Sto scrivendo un'app solo iOS 8 e sto utilizzando le nuove presentazioni adattive utilizzando una combinazione di "Mostra" e "Mostra dettagli" e showViewController:sender:
e showDetailViewController:sender:
metodi.Che cosa è l'opposto programmatico di showViewController: mittente:
La mia domanda è qual è il modo programmatico di tornare dopo aver chiamato showViewController:sender:
? Il modo in cui viene mostrato il controller della vista dipende dal suo contesto genitore. Per esempio. in un UINavigationController
showViewController:sender:
inserisce un nuovo controller nello stack di navigazione ma se non c'è un contenitore UIKit nel grafico del controller di visualizzazione, showViewController:sender:
termina invece facendo una presentazione.
Considerando ho potuto scrivere il mio regolatore contenitore arbitrario sembra impraticabile controllare
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
}
else if (self.presentingViewController){
...
else if ([self.parentViewController isKindOfClass:[CrazyCustomContainer class]]){
[self.parentViewController someWackyUnwindMethod];
}
...
ecc ... quindi c'è un modo generico per invertire viene mostrato? Se no, l'unica soluzione che vedo è quella di usare i segui di unwind per tutto. Non troppo di una seccatura ma sono curioso.
Penso che una parte di questo è perché con un modello avresti un pulsante di annullamento e chiamerei il normale 'dismissViewControllerAnimated:' e con un controller di navigazione avrebbe un pulsante indietro incorporato. Quindi non devi spesso gestire i licenziamenti nello stesso modo in cui gestisci le presentazioni. –
Ma questo è il mio punto: 'showViewController:' può fare una push o una presentazione. Il controller di visualizzazione presentato non dovrebbe sapere come è stato visualizzato sullo schermo, quindi fare qualcosa come '[self.navigationController popViewControllerAnimated:]' nel presentato non è buono se a volte può fallire perché sei stato presentato ... – jackslash
Bene per un navController che non avresti bisogno di pop. Avrebbe una schiena. –