Spesso capita di dover impostare diverse schermate su iOS per introdurre/selezionare dei dati e dopo aver navigato sull’ultima scheda, avere la necessità di tornare indietro alla schermata iniziale senza dover scorrere lo stack all’indietro. Vediamo un semplice metodo per ottenere questa funzionalità nella applicazioni Xojo per iOS.
Ad esempio abbiamo una view per impostare un filtro di ricerca, e man mano che procediamo vogliamo attivare ulteriori filtri.
Ogni volta che facciamo il pushTo per mostrare una nuova view, questa viene aggiunta allo stack.
iOS fornisce la possibilità di tornare al livello precedente tramite il pulsante in alto a sinistra nella navigation bar, ma se vogliamo “riavvolgere” lo stack, dobbiamo utilizzare una funzionalità non presente nativamente in Xojo per iOS.
Il codice è molto semplice e basta aggiungerlo alla nostra libreria di funzioni da utilizzare come estensione per la iosView.
Sub popHome(extends view as iosView, animated as boolean=true) Declare Sub popToRoot Lib "UIKit" selector "popToRootViewControllerAnimated:"(oPtr As Ptr, animated As Boolean) Declare Function navCon lib "UIKit" selector "navigationController"(o As Ptr) As Ptr Dim nc As Ptr=navCon(view.Handle) popToRoot(nc, animated) end sub |
Per poi utilizzarla dove serve con un semplice
self.popToRoot |
Questo metodo funziona sia quando la nostra view è in gruppo di tab che quando è indipendente.