Bueno, tengo buenas y malas noticias.
La buena noticia es que he descubierto por qué esto no funciona. En iOS6 navigationItem del QLPreviewController ya no tiene un navigationbar:
(lldb) po [[self navigationItem] navigationBar];
(id) $2 = 0x00000000 <nil>
La barra de navegación se encuentra ahora en lo profundo de la vista de jerarquía de la QLPreviewControllersView:
QLPreviewViewController.view-> UIView-> UIView-> QLRemotePreviewContentController- > navBar-> navItem-> rightBarButtonItems.
Usted puede utilizar el método siguiente para encontrar la navigationItem que está buscando:
- (void)inspectSubviewsForView:(UIView *)view
{
for (UIView *subview in view.subviews)
{
if ([subview isKindOfClass:[UINavigationBar class]])
{
UINavigationBar *bar = (UINavigationBar *)subview;
if ([[bar items] count] > 0)
{
UINavigationItem *navItem = [[bar items] objectAtIndex:0];
[navItem setRightBarButtonItem:nil];
}
}
if ([subview isKindOfClass:[UIView class]] && [[subview subviews] count] > 0)
{
[self inspectSubviewsForView:subview];
}
}
}
Basta con pasar [Ver auto] a ese método y se hará en bucle hasta que encuentra la barra de pestañas en cuestión. Luego puede eliminar o agregar el suyo.
Las malas noticias son, por supuesto, que está accediendo a API privadas y su uso probablemente hará que su aplicación sea rechazada por la tienda de aplicaciones. Sin embargo, es la única respuesta que he visto en esto. Me encantaría ver si hay una forma no privada de hacerlo, pero dada la forma en que está configurado, parece poco probable.
Además, este método solo funcionará si se invoca después de que la barra ya está en posición. El mejor lugar para llamar esto es 'viewDidAppear', pero no funciona el 100% del tiempo.
Problema similar: http://stackoverflow.com/questions/12568508/custom-view-in-tab-bar-does-no-longer-work-in-ios6 – mark
Tengo el mismo problema. Tratando de resolver ... – wzbozon
Tiene el mismo problema. Parece que ya no puede reemplazar o eliminar el botón Compartir estándar. – Aron