2010-07-16 27 views
8

Así que he actualizado el código al iPad (es decir, convertido en una aplicación universal). Sin embargo, la representación de UIAlertview parece estar desactivada para IOS4. En lugar de colocarse en el centro, salta y se muestra en la parte superior, con la mitad de la caja cortada. Lo mismo ocurre con la orientación horizontal.iphone a ipad, iphone 4 uialertview problemas

Tengo entendido que la vista de UI siempre se establece en el medio? Miré el código y no configuré el marco/posición en ningún lugar del código. Esto solo ocurre para 4.0, tanto en el iphone 4 como en el itouch con 4.0. Cada otra versión está bien, incluido el ipad. ¿Alguna idea?

Gracias.

+0

¿Cómo es tu creación? ¿tiene un título y contenido o solo uno o el otro? Vi esta misma cosa y terminé teniendo que ajustar el marco de todos modos, ¿por qué trataste de mover el marco? – AtomRiot

+0

De hecho, estoy depurando esto para otra persona. Por crear, ¿te refieres a la asignación e inicialización? Creo que tiene un título y contenido. Miré la inicialización y no vi ningún uso de marco. Voy a verificar nuevamente. Por curiosidad, ¿esto se muestra solo en 4.0 y no en las otras versiones, y solo después de actualizar a universal? – user396004

Respuesta

1

Parece ser un error. También tuve el problema en iPad con iOS 3.2.

Solución:

a) Comprobar el estado de la aplicación: En IOS 4 sólo tiene que utilizar

[UIApplication sharedApplication].applicationState 

antigua iOS: Guarde el estado de la aplicación manualmente:

-(void)applicationWillResignActive:(UIApplication *)application 
{ 
    self.appIsInBackground = YES; 
} 

-(void)applicationWillTerminate:(UIApplication *)application 
{ 
    self.appIsInBackground = YES; 
} 

-(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    // Open your UIAlert here if self.appIsInBackground == YES; 

    self.appIsInBackground = NO; 
} 

b) abrir el UIAlert después de que la aplicación se activó, como se muestra arriba en los comentarios.

0

¿Su alerta tiene campos de texto agregados?

Porque en 4.0+ iOS desplaza la vista de alerta a la parte visible si tiene un campo de texto en la vista de alerta.

0

Tengo el mismo problema para iPad 3.2 cuando la aplicación se renueva activa y en ese momento se muestra que la alerta se mostrará en la esquina superior izquierda. Así que lo arreglé usando el siguiente código en el método - (nulo) applicationDidBecomeActive: (UIApplication *) aplicación

//Check that key window is alert view 
if ([[[UIApplication sharedApplication].keyWindow description] hasPrefix:@"<_UIAlertOverlayWindow"]) { 
    //Yes then check for subviews tht are alertViews 
    UIWindow *alertViewWindow = [UIApplication sharedApplication].keyWindow; 
    NSArray *subViews = [alertViewWindow subviews]; 
    for (UIView *subview in subViews) 
    { 
     if ([subview isKindOfClass:[UIAlertView class]]) 
     { 
      //Retain it 
      UIAlertView *alertView = (UIAlertView *)[subview retain]; 
      //Now dismiss it and then show it again 
      [alertView dismissWithClickedButtonIndex:0 animated:NO];//Here ClickedButtonIndex must be according to cancel button 
      //Show the alert view again 
      [alertView show]; 
      //Release previsous retained object 
      [alertView release]; 

     } 
    } 
}