2009-08-02 14 views
5

Tengo una aplicación de iPhone que usa un Controlador UITabBar, que contiene dos UINavigationControllers, cada uno de los cuales contiene uno o más TableViewControllers (en realidad, UIViewControllers personalizados que implementan UITableViewDelegate y UITableViewDataSource). En el lanzamiento, muestra el UITabBarController con una de las vistas de tabla mostradas. Todo está codificado; Interface Builder NO se usó para hacer ninguna de las cosas de UI. Fue escrito en SDK 2. Funcionó bien en sdk 2.Actualice a iPhone 3.0 sdk y ahora simulador muestra pantalla en blanco

Recientemente actualicé a SDK 3.0. En Info, configuré la configuración del Base SDK en iPhone Simulator 3.0. Ahora, cuando ejecuto la aplicación en Simulator, solo veo una pantalla blanca en blanco con la barra de estado en la parte superior. No hay signos de mi aplicación. Sin embargo, cuando salgo de la aplicación, la tabla que falta se muestra brevemente mientras se reproduce la animación que sale. Además, en la pantalla blanca en blanco aún puedo hacer clic donde deberían estar los botones de navegación y encontrar que, cuando salgo de la aplicación y aparece brevemente la pantalla que falta, esa navegación me ha llevado a otra pantalla. Entonces, los botones funcionan, y presumiblemente las celdas de tabla están ahí, simplemente no se pueden ver.

¿Alguien ha visto algo como esto? ¿Alguien tiene alguna idea de lo que está causando y cómo puedo solucionarlo? Noté que las aplicaciones de muestra, como SQLiteBooks, parecen funcionar bien al actualizar a SDK 3.0. Mi aplicación no es muy diferente de SQLiteBooks en términos de tecnologías utilizadas, excepto que, como dije antes, no uso Interface Builder.

Respuesta

1

Si está construyendo su ventana puramente en código, asegúrese de eliminar MainWindow.xib de las propiedades en su destino.

Si ese no es el problema, he tenido problemas similares antes con aplicaciones que se comportan de manera extraña durante el lanzamiento. No estoy seguro de cuál es la causa raíz, por lo que es prueba y error para mí:

1) trate de eliminar el directorio de construcción y reconstrucción.

2) Establezca el SDK base en el dispositivo iPhone 3.0. (El SDK base se sobrescribe al compilar para el simulador de todos modos)

3) También tuve un problema una vez que el archivo plist del proyecto y MainWindow.xib se borraron de mi proyecto accidentalmente, y causó este problema idéntico. Verifique que estén en su estructura de proyecto si está utilizando MainWindow.xib.

2

Sí, finalmente encontré la solución simple - Ventana abierta en MainWindow.xib, cambie el valor alfa a 0 (por defecto es 100).

+0

Esto funcionó para mí. Para aquellos que no saben cómo hacerlo: 1. Haga doble clic en Recursos/MainWindow.xib para abrir MainWindow en InterfaceBuilder. 2. Seleccione la 'ventana' en el MainWindow.xib interfaz de usuario. 3. Seleccione Herramientas/Atributo Inspector en el menú principal de Interface Builder. 4. alfa es el quinto valor en la interfaz de usuario atributos. El rango es 0.00 - 1.00. Establézcalo en 0.00. Guarde y cierre IB. –

1

No tuve que cambiar ninguna configuración de valor alfa. Todo lo que hice fue salir de Interface Builder antes de intentar lanzar mi proyecto en el simulador de iPhone. Por alguna razón, si IB está abierto la primera vez que ejecuta el simulador, obtendrá una pantalla en blanco, así que salga de IB antes de ejecutar el proyecto por primera vez.

+0

Confirmado esto, tuve exactamente el mismo problema. Las compilaciones y ejecuciones posteriores no requieren que tengas el compilador de interfaz cerrado. – jbnunn

3

En IB, haga clic en "Ventana" y asegúrese de que "Visible al iniciar" esté marcado. La mía no y mi aplicación finalmente apareció después de marcar esa casilla.

0

También tengo este problema, yo baremo resuelto haciendo lo siguiente:

En Interface Builder: propietario

  • de archivo: es su delegado aplicación
  • ventana: es boquilla para ventana delegado de la aplicación

En XCode: - Si está utilizando 3.0 o superior, comenta esta línea de código en su aplicación delegue:

// window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

0

que fija la mina cambiando el modo de Scale To Fill a Center. Antes de cambiar el alfa y todo lo que hice fue cambiar el fondo a negro. Pensé que quizás los valores reales no estaban escalando correctamente, y estaba en lo cierto. Una vez más, sólo tiene que cambiar el modo de Scale To Fill a Center y listo, que debería funcionar.

0

Parece que tiene que salvar a la nueva interfaz antes de ejecutar. Nunca antes me había desarrollado para iPhone y finalmente descubrí por qué recibía una pantalla en blanco. Parece que debería guardar automáticamente antes de ejecutarse, pero aparentemente no es así.

1

que tenían el mismo problema de conseguir la pantalla blanca en simulador de iPhone después de actualizar mis iOS a 4,2

Después de probar todas las soluciones anteriores dadas por la gente en este tema y no afectan el problema,

I intentado modificar el código siguiente en el método

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

.... escribiendo este código ...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 



    // HomeScreen is my first view that should be displayed on the app launch 
    // Creating the homescreen instance in the appdelegate method and 
    // assigned it to the homeScreenWindow element declared in the appdelegate class 

    HomeScreen *aHomeScreen = [[HomeScreen alloc]initWithNibName:@"HomeScreen" bundle:nil]; 
    self.homeScreenWindow = aHomeScreen; 
    [aHomeScreen release]; 
    // assigning ends here 

    [window addSubview:[homeScreenWindow view]]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 
Cuestiones relacionadas