create - tabbar ios
¿Cómo debe integrarse un controlador de barra de pestañas en un flujo de trabajo de controlador de navegación? (9)
No es muy difícil insertar un controlador de pestañas en un controlador de navegación, puede hacerlo configurando un controlador de navegación como rootViewController, luego realice un cambio que comience desde su celda de tabla a tabBarController, aquí hay un ejemplo de su flujo de trabajo.
Me dieron un diseño con el siguiente flujo de trabajo:
- El usuario inicia sesión en una aplicación
- Al iniciar sesión correctamente, el usuario ve una tabla con filas de datos
- Al hacer clic en una fila de datos, el usuario es llevado a un controlador de vista con una interfaz en pestañas. Cada controlador de vista en la interfaz con pestañas proporciona una inmersión profunda de un aspecto de los datos que se muestran en la vista de tabla.
- Desde cualquier pestaña, el usuario puede presionar el botón Atrás y regresar a la vista de tabla.
Basándome en esta descripción, me parece que la aplicación necesita un controlador de vista raíz del controlador de navegación para iniciar sesión y la vista de tabla, luego al hacer clic en la fila de la tabla la aplicación necesita utilizar un controlador tabbar para la inmersión profunda de los datos.
Parece que no puedo agregar un UITabBarController a un Controlador de navegación usando un guión gráfico. Además, he encontrado otras publicaciones de SO que hacen una pregunta similar, pero ninguna de las respuestas proporcionadas parece actual o abordan este flujo de trabajo utilizando las mejores prácticas actuales (iOS7 / 8). ¿Hay alguna forma de lograr este flujo de trabajo? Si no lo hay, ¿hay alguna explicación concisa que pueda usar para informar al diseñador y a las partes interesadas?
puedes diseñar tu UI como este
- hacer que el controlador de navegación sea el controlador de vista inicial
- la segunda vista es para su pantalla de inicio de sesión
- La tercera vista es una vista de tabla para mostrar sus datos
- y finalmente un controlador tabbar con sus controladores de vista de elementos
Espero que esto ayude....
Si bien es factible, no se recomienda insertar una barra de pestañas dentro de una barra de navegación. Voy en contra de las directrices de Apple y los usuarios están acostumbrados a tener la barra de pestañas como controlador raíz.
Solo desea mostrar una barra de pestañas en algunas situaciones. Recomiendo presentarla modalmente encima de su controlador de navegación.
De Apple :
Antes de crear una interfaz de barra de pestañas, debe decidir cómo piensa utilizar una interfaz de barra de pestañas. Debido a que impone una organización global en sus datos, debe usar uno solo de estas maneras específicas:
- Instálelo directamente como controlador de vista raíz de una ventana.
- Instálelo como uno de los dos controladores de vista en una interfaz de vista dividida. (iPad solo)
- Preséntelo de manera modal desde otro controlador de vista.
- Muestrelo desde un popover. (iPad solo)
Instalar una interfaz de barra de pestañas en la ventana principal de su aplicación es, de lejos, la forma más común de usarlo. En tal escenario, la interfaz de la barra de pestañas proporciona el principio de organización fundamental para los datos de su aplicación, con cada pestaña que lleva al usuario a una parte distinta de la aplicación. Puede usar controladores de barra de pestañas solos o junto con otros controladores de vista para crear interfaces aún más sofisticadas. Para obtener más información, vea Interfaces de controlador de vista combinada.
También es posible presentar un controlador de barra de pestañas de forma modal si una necesidad muy específica hace que valga la pena hacerlo. Por ejemplo, puede presentar un controlador de barra de pestañas de forma modal para editar algún conjunto de datos complejos que tengan varios conjuntos distintos de opciones. Debido a que una vista modal llena la totalidad o la mayoría de la pantalla (dependiendo del dispositivo), la presencia de la barra de pestañas simplemente reflejaría las opciones disponibles para ver o editar los datos presentados de forma modal. Evite usar una barra de pestañas de esta manera si hay un enfoque de diseño más simple disponible.
No puede presionar el TabBarController desde la celda de la vista de tabla ya que "Push está privado ahora". Puedes seguir los pasos a continuación en el guión gráfico:
- Tome el controlador de vista inicial del controlador de navegación.
- Agregue tableview como su controlador de vista raíz.
- A continuación, agregue TabBarController al guión gráfico.
- A continuación, haga clic con el botón derecho en TableView Cell y vincule la selección de celdas de tabla a TabBarController con "Mostrar".
Verifiqué tus requisitos.
Aunque no es recomendado por Apple Inc. para casos de uso regular,
Sin embargo, se puede lograr fácilmente mediante un trabajo conjunto para lograr el principio de diseño sugerido a través de los siguientes pasos.
- Cree un diseño similar en el story board, observe que Navigation Controller está antes de la pantalla de inicio de sesión.
- Implementar los siguientes métodos de lista para invocar una pestaña específica a través de la Vista de lista programáticamente.
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"test" forIndexPath:indexPath]; cell.textLabel.text = [NSString stringWithFormat:@"%ld", (long)[indexPath row]]; return cell; }
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITabBarController *tbc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTabbedViewController"];
tbc.selectedIndex= (long)[indexPath row];
[self showViewController:tbc sender:self];
}
- En caso de que el tamaño de la lista sea dinámico, puede crear elementos de la barra de pestañas también programáticamente.
https://24hrstech.wordpress.com/2012/08/19/create-tabbarcontroller-programmatically/
He usado una funcionalidad similar para una aplicación en la que estoy trabajando actualmente. En mi aplicación,
Tengo un inicio de sesión y registro en un controlador de navegación y una vez que el inicio de sesión / registro es exitoso, va a otro controlador de navegación que tiene una vista de tabla.
Al hacer clic en la celda ''Turismo'' en la tabla, me llevarán a un controlador de la barra de pestañas con pestañas con diferentes detalles sobre los 4 lugares diferentes. Desde cualquier pestaña, puede volver a la vista de tabla principal que aparece después de su inicio de sesión exitoso haciendo clic en el botón Atrás en la barra de navegación.
Si esto es lo que necesita, he seguido un controlador de la barra de pestañas ''embeber'' como se muestra en las respuestas anteriores. Funcionó perfectamente para mí. Mi aplicación está en modo vertical. He oído que esto crea un problema en el modo horizontal. Soy un principiante y no he intentado lo mismo en modo paisaje.
Incrustar en un nuevo controlador de navegación para la vista de tabla después del controlador de vista de inicio de sesión. Estoy usando lo mismo en mi aplicación.
Puede utilizar MHCustomTabBarController Está creado con la API de App ViewController de contenedor personalizado de Apple y se puede anidar dentro de su controlador de navegación
Apple recomienda que UITabBarController
se use principalmente como controlador de vista raíz.
En su caso sugiero usar un UISegmentedControl
en la vista de un UIViewController
normal en lugar del UITabBarController
. Con un poco de lógica puede visualizar diferentes vistas en el UIViewController
sugerido correspondiente al segmento del UISegmentedControl
que se presiona.
Además, si está utilizando un controlador de navegación, puede insertar el UISegmentedControl
en la barra de navegación como título. (Consulte la pestaña "Recientes" en la aplicación Teléfono.
Aquí está lo que tú necesitas hacer.
Aquí he usado el botón para navegar, ya que no he creado una vista con una descripción completa, pero no necesito vincular el botón con el Table View Controller o tabbar.
1.) Seleccione View Controller y luego vaya a Editor > Embed In > Navigation Controller
2.) Enlace el Controlador de Vista con el Controlador de Vista de Tabla.
3.) Dé identifire para segue para que pueda llamar a realizar segue basado en el éxito del inicio de sesión.
4.) Para un flujo correcto de navegación usando tabbar, primero debe vincular el controlador tabbar con View Controller y luego incrustar el controlador de navegación en tabbar. De manera similar, también puede incrustar el controlador de navegación en el controlador tabbar, pero no es el flujo correcto.
5.) Finalmente, hoy se verá tu story board.
6.) Resultado
Espero que ayude a resolver tu problema.