2010-09-18 12 views
5

Tengo una aplicación con UITabBarController con una subvista UINavigationController, que contiene una vista de tabla. Quiero poder cambiar el UITabBarController con un UIToolbar para un controlador de vista específico cuando se selecciona una celda.Reemplace UITabBar con UIToolBar

He aquí un ejemplo de alguna otra aplicación, que reacciona de la misma manera:

Initial view with UITabBarController and UINavigationController

Y cuando se selecciona una celda vista de tabla:

Detailed view with UIToolbar

El controlador de vista detallada (segunda pantalla) necesita reemplazar el padre UITabBarController con un UIToolbar. ¿Alguien sabe cómo puedo hacer esto?

Respuesta

5

De UIToolBar on top of UITabBar?:

Es posible que pueda agregar la barra de herramientas como una vista secundaria de la ventana clave:

[[[UIApplication sharedApplication] keyWindow] addSubview:toolbarView] 
1

Aunque @Hector Ramos respuesta es correcta.

Pero además de esto uno puede hacer lo mismo de otra manera también.

Simplemente hacer que el objeto de presentar DelegateClass & uso esto:

[DelegateClassObj.window addSubview:toolbar]; 
5

Por qué no: detailController.hidesBottomBarWhenPushed = YES;

antes de empujar a la navigationstack? La vista de su DetailController puede tener la barra de herramientas agregada a través de código o IB.

+0

Esta es de lejos la mejor opción. Aunque las otras respuestas funcionan, esta logra el mejor. El problema con los otros métodos es que no son compatibles con la rotación. Por lo tanto, si desea admitir la autorrotación, solo use el campo hidesBottomBarCuando se apunte a su vista antes de presionarlo en la pila NavigationController. Luego permitirá que su nueva vista ocupe toda la pantalla. – jschmidt