Domanda

Ho un'applicazione a schede con 3 schede

La prima scheda è una tabella Visualizza la seconda e la terza scheda sono le visualizzazioni di una pagina singola

Quando un utente fa clic su una cella della tabella in vista una nuova vista viene premuta con un pulsante Indietro sulla cella della tabella.

Ora diciamo che fanno clic su Tab 2, quindi tornano alla scheda 1. La nuova vista che è stata spinta nella scheda 1 è ancora visibile. Quello che vorrei è che la vista della tabella "si ripristina" quando navigano da essa con un'altra scheda in modo che quando tornano vengono presentati con la vista del tavolo anziché la nuova vista che è stata spinta.

È stato utile?

Soluzione

Sono d'accordo con il commento di Eljay, ma per rispondere alla domanda usa uitabbarcontrollerdelegate

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

Quando viene selezionata una nuova scheda, vedi se quella corrente è la scheda 1 selezionata proprietà di tabBarController e se così fosse popToRootViewController:

Altri suggerimenti

Come hanno detto gli altri, questa non è probabilmente una buona esperienza utente. L'idea di un controller TAB è che consente all'utente di passare liberamente tra le diverse parti della loro app e tornare subito a ciò che stavano facendo prima.

Se sei determinato a farlo in questo modo, fai il controllo del controller di vista del controller di visualizzazione di navigazione una sottoclasse personalizzata e impostalo come delegato del controller della barra della scheda.

Nel controller di visualizzazione personalizzato, implementa la funzione dovrebbe selezionare (), come di seguito:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
  if viewController == self.navigationController {
    self.navigationController.popToRootViewController()
  }
  return true
}

Divulgazione: non ho provato a compilare il codice sopra, tanto meno testarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top