Ho uno UINavigationController
con una serie di UIViewControllers
su di esso. In alcune circostanze, voglio tornare esattamente a due livelli. Ho pensato di poterlo fare chiamando lo popViewControllerAnimated
due volte di seguito, ma si scopre che la seconda volta che lo chiamo, non sta spuntando nulla e invece restituisce NULL. Devo memorizzare un riferimento al mio VC di destinazione e chiamare invece popToViewControllerAnimated? Posso farlo, ma complica il mio codice dato che dovrei passare lo UIViewController
* in giro mentre sto spingendo i VC nello stack.Chiamata popViewControllerAnimated twice
Ecco il frammento di rilevante:
UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
if (...) {
// pop twice if we were doing XYZ
UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
// stored in "one" and "two" for debugging, "two" is always 0 here.
}
sto facendo qualcosa di strano qui? Voglio scrivere un codice idiomatico, quindi se il modo "giusto" è chiamare popToViewControllerAnimated
, o qualcos'altro interamente, lo cambierò felicemente.
oooh, credo di poter fare quel lavoro per me senza dover passare i puntatori viewController intorno. Grazie! –
Come una FYI, ho dovuto usare viewControllers.count - 3 per tornare indietro di due. vc.count - 1 è la vista dall'alto, e due indietro da -3. –
Perfetto! Sapevi anche che volevo andare al 3 ° viewcontroller: tutto quello che dovevo fare era tagliare e incollare. Grazie. –