Nous avons un problème lorsque l'utilisateur utilise notre application sur l'iPhone et reçoit un appel sur une vue qui a été présentée par le rootviewcontroller et qui couvre le contrôleur de navigation et il est barre de navigation. La barre d'état de l'appel s'affiche et pousse la vue actuelle vers le bas, mais lorsque cette vue est supprimée de la vue d'ensemble, la barre d'état couvre la moitié de la barre de navigation.La barre de navigation de l'objectif C ne s'ajuste pas lorsque StatusBar change
Nous avons essayé d'utiliser un UIApplicationWillChangeStatusBarFrameNotification dans le délégué de l'application, puis de régler la taille du contrôleur de navigation et de la barre de navigation sans aucun effet. Nous avons également essayé de réinitialiser le cadre du contrôleur de navigation et de la barre de navigation dans la fonction viewWillAppear de la page qui présente la vue. Quelqu'un peut-il nous dire où nous allons mal?
Dans délégué App nous avons essayé cette
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self setupAppStyles];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor ugBlue];
UINavigationController *navController = [[UINavigationController alloc] init];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
[self setUpNotifications];
return YES; }
-(void) setUpNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(statusFrameChanged:)
name:UIApplicationWillChangeStatusBarFrameNotification
object:nil];}
- (void)statusFrameChanged:(NSNotification*)note {
CGRect statusBarFrame = [note.userInfo[UIApplicationStatusBarFrameUserInfoKey] CGRectValue];
self.statusHeight = statusBarFrame.size.height;
UIScreen *screen = [UIScreen mainScreen];
CGRect viewRect = screen.bounds;
viewRect.size.height -= self.statusHeight;
viewRect.origin.y += self.statusHeight;
[[UINavigationBar appearance] setFrame:viewRect];
NSLog(@"The status frame has changed");
//[self.navController.view setFrame:viewRect];
self.navController.view.frame.size.height);}
Nous avons également essayé quelque chose de similaire dans les vues des fonctions viewWillAppear aussi sans résultats positifs. Des pensées?