iphone - UINavigationController tiene que establecer la altura de la vista en 548 en una pantalla de 3.5 pulgadas



objective-c ios6 (0)

Creo que tengo un caso especial aquí, ya que tengo un UIViewController con una vista IB configurada en un tamaño de 4 pulgadas y agrego un UINavigationController con addChildViewController (Facebook / Path como menú deslizante). El problema que estoy enfrentando ahora es que si ejecuto la aplicación, el alto de la vista UINavigationController es 372 cuando establezco

containerViewController.view.frame = CGRectMake(0, 0, 320, 460);

Tengo que establecer la altura en 548 para obtener la altura correcta de 460 en un dispositivo de 3,5 pulgadas. ¿Cómo puedo arreglar eso?

También registro un evento en UIBarButtonItem para deslizar la pantalla con

[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
            self.navigationController.view.frame = CGRectMake(268, 0, 320, 460);
        } completion:^(BOOL finished){ }];

Al hacer clic en el botón, UIView se establece en la altura correcta, pero estoy usando el mismo tamaño exacto de (268, 0, 320, 460) para CGRectMake.

Cuando estoy configurando el marco después

[self.window makeKeyAndVisible];

Está funcionando usando 460 para la altura, ¿por qué está funcionando? Creo que iOS está realizando el ajuste de tamaño de visualización solo después de makeKeyAndVisible





ios6