2009-06-24 8 views
7

Ho una domanda abbastanza semplice ma la risposta non è così semplice.Nascondere un UITabBar quando modifica l'orientamento

Voglio nascondere un UITabBar quando il mio orientamento cambia.

ho guardato 2 modi:

modo Telaio

myAppDelegate.tabBarController.tabBar.frame = CGRectMake(<<bottomOfScreen>>); 

funziona bene, ma ho un un'area vuota, quindi provato a giocare con tabBarController.view.frame et myViewController.view.frame ma Non ho ottenuto alcun risultato positivo.

controller di navigazione Way

myOtherVC.hideTabBarWhenPushed = YES; 
[self.navigationController pushViewController:myOtherVC animated:NO]; 

Opere, ma non è una buona soluzione per la mia app

Aggiornamento:

[appDelegate.tabBarController.view removeFromSuperview]; 
[self.view removeFromSuperview]; [appDelegate.window addSubview:self.view]; 
self.view.frame = CGRectMake(0,0,480,320); 

funziona bene, ma non più AutoRotate (e, naturalmente, non ho modificato il valore shouldAutorotate e restituisce sempre SÌ)


Come posso Hidde mia TabBar e rendere la visualizzazione corrente prendendo il suo spazio?


Grazie

+0

Hai capito come fare? Se sì, puoi condividere la risposta? –

+0

Sì, ho appena postato la risposta – Francescu

risposta

3

È possibile utilizzare la soluzione attuale combinato con:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil]; 

per rilevare la rotazione. (Penso che tu combini questo con view.transform = CGAffineTransformMakeRotation per farlo ruotare ...?)

0

Due modi penso che si può facilmente fare questo sarebbe:

  1. per ricaricare gli oggetti di nuovo nel controller barra delle linguette - con il hidesBottomBarWhenPushed impostato su YES per i viewControllers vuoi essere nascosto.
  2. L'altra opzione sarebbe quella di fare solo il tuo punto di vista solo vista per la finestra quando si ruota il telefono e poi mettere il tabBarController.view indietro nella finestra quando il telefono viene ruotato indietro

Spero che questo aiuti

+0

Ciao, grazie per il tuo aiuto. Ho giocato con visualizzazioni: [appDelegate.tabBarController.view removeFromSuperview]; [self.view removeFromSuperview]; [appDelegate.window addSubview: self.view]; self.view.frame = CGRectMake (0,0,480,320); Funziona bene ma non esegue automaticamente l'autorotazione (e, naturalmente, non ho modificato il parametro shouldAutorotate e restituisce sempre SÌ) – Francescu

Problemi correlati