Aplicación con pestañas iOS con vista de tabla, ¿cómo restablecer la pestaña Vista de tabla? Principiante.

StackOverflow https://stackoverflow.com/questions/8840978

Pregunta

Tengo una aplicación con 3 pestañas

La primera pestaña es una vista de tabla, la segunda y la tercera pestaña son vistas de una sola página

Cuando un usuario hace clic en una celda de mesa en la vista, una nueva vista se presiona con un botón de retroceso a la celda de la mesa.

Ahora digamos que hacen clic en la pestaña 2, luego vuelve a la pestaña 1. La nueva vista que se empujó en la pestaña 1 todavía es visible. Lo que me gustaría es tener la vista de la tabla "restablecer" cuando navegan lejos de ella con otra pestaña para que cuando regresen se presenten con la vista de tabla en lugar de la nueva vista que se impulsó.

¿Fue útil?

Solución

Estoy de acuerdo con el comentario de Eljay, pero para responder la pregunta usa uitabBarControllerDelegate

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

Cuando se selecciona una nueva pestaña, consulte si la actual es la Pestaña SelectedIndex SelectedIndex de tabBarController y de ser así popToRootViewController:

Otros consejos

Como los demás han dicho, esta probablemente no sea una buena experiencia de usuario. La idea de un controlador de pestañas es que permite al usuario cambiar libremente entre las diferentes partes de su aplicación y volver a lo que estaban haciendo antes.

Si está decidido a hacerlo de esta manera, haga que el controlador de vista raíz de su controlador de vista de navegación sea una subclase personalizada y configúrelo como delegado del controlador de la barra de pestañas.

En su controlador de vista personalizado, implementa la función debería seleccionar (), como se muestra a continuación:

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

Divulgación: no he intentado compilar el código anterior, mucho menos probarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top