Domanda

Ho una domanda abbastanza semplice ma la risposta non è così semplice.

Voglio nascondere un UITabBar quando il mio orientamento cambia.

Ho guardato in 2 modi:

Modo frame

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

Funziona bene ma ho un'area vuota, quindi ho provato a giocare con tabBarController.view.frame e myViewController.view.frame ma non ho ottenuto alcun buon risultato.

Modo controller di navigazione

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

Funziona 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 si autorotera più (e, naturalmente, non ho cambiato il metodo automatico e restituisce sempre SÌ)


Come posso nascondere la mia tabBar e fare in modo che la vista corrente prenda il suo spazio?


Grazie

È stato utile?

Soluzione

È possibile utilizzare la soluzione corrente combinata 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 ...?)

Altri suggerimenti

Due modi in cui penso che puoi farlo facilmente sarebbero:

  1. per ricaricare nuovamente gli oggetti nel controller tabBar - con hidesBottomBarWhenPushed impostato su YES per i viewController che si desidera nascondere.
  2. L'altra opzione sarebbe quella di rendere la tua vista l'unica vista per la finestra quando il telefono viene ruotato e quindi rimettere tabBarController.view nella finestra quando il telefono viene ruotato indietro

Spero che questo aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top