2009-08-02 5 views
5

J'ai une application iPhone qui utilise un UITabBarController, qui contient deux UINavigationControllers, chacun contenant à son tour un ou plusieurs TableViewControllers (en fait, des UIViewControllers personnalisés implémentant UITableViewDelegate et UITableViewDataSource). Au lancement, il affiche UITabBarController avec l'une des vues de table affichées. Tout est codé; Interface Builder n'a pas été utilisé pour créer des éléments d'interface utilisateur. Il a été écrit dans SDK 2. Il a bien fonctionné dans SDK 2.Mise à niveau vers l'iPhone 3.0 sdk et maintenant le simulateur affiche l'écran vide

J'ai récemment mis à jour vers le SDK 3.0. Dans Info, je définis le paramètre Base SDK sur iPhone Simulator 3.0. Maintenant, quand je lance l'application dans Simulator, je vois seulement un écran blanc vide avec la barre d'état en haut. Aucun signe de mon application. Toutefois, lorsque je quitte l'application, la tablevue manquante s'affiche brièvement lorsque l'animation en cours de lecture est en cours de lecture. De plus, sur l'écran blanc, je peux toujours cliquer sur les boutons de navigation et constater que, lorsque je quitte l'application et que l'écran manquant s'affiche brièvement, cette navigation m'a amené à un autre écran. Donc, les boutons fonctionnent, et il est probable que les viewviewcells sont là, ils ne peuvent tout simplement pas être vus.

Quelqu'un at-il déjà vu quelque chose comme ça? Est-ce que quelqu'un a une idée de ce qui le cause et comment je peux le réparer? J'ai remarqué que des exemples d'applications, tels que SQLiteBooks, semblent fonctionner correctement lors de la mise à jour vers SDK 3.0. Mon application n'est pas très différente de SQLiteBooks en termes de technologies utilisées, sauf que, comme je l'ai dit plus haut, je n'utilise pas Interface Builder.

Répondre

1

Si vous construisez votre fenêtre uniquement en code, veillez à supprimer MainWindow.xib des propriétés de votre cible.

Si ce n'est pas le problème, j'ai déjà eu des problèmes similaires avec des applications se comportant étrangement au lancement. Je ne suis pas sûr de ce que la cause première, donc c'est essai et erreur pour moi:

1) Essayez de supprimer le répertoire de construction et de reconstruction.

2) Réglez le SDK de base sur iPhone Device 3.0. 3) J'ai aussi eu un problème une fois où le fichier plist du projet et MainWindow.xib ont été supprimés accidentellement de mon projet, et cela a causé ce problème identique. Double-vérifier pour s'assurer qu'ils sont dans votre structure de projet si vous utilisez MainWindow.xib.

2

Oui, j'ai finalement trouvé la solution simple - ouvrir Window dans MainWindow.xib, changer la valeur Alpha à 0 (par défaut est 100).

+0

Cela a fonctionné pour moi. Pour ceux qui ne savent pas comment le faire: 1. Double-cliquez sur Resources/MainWindow.xib pour ouvrir MainWindow dans InterfaceBuilder. 2. Sélectionnez la 'fenêtre' dans l'interface utilisateur MainWindow.xib. 3. Sélectionnez Outils/Attribut Inspector dans le menu principal d'Interface Builder. 4. alpha est la cinquième valeur vers le bas dans les attributs ui. La plage est comprise entre 0,00 et 1,00. Réglez-le sur 0.00. Enregistrez et fermez IB. –

1

Je n'avais pas besoin de modifier les paramètres de valeur alpha. Tout ce que j'ai fait, c'est quitter Interface Builder avant d'essayer de lancer mon projet dans l'iPhone Simulator. Pour une raison quelconque, si IB est ouvert la première fois que vous exécutez le simulateur, il vous donnera un écran vide, alors quittez IB avant d'exécuter le projet pour la première fois.

+0

Confirmé cela, j'ai eu le même problème. La génération et les exécutions ultérieures ne nécessitent pas la fermeture d'Interface Builder. – jbnunn

3

Dans IB, cliquez sur "Fenêtre" et assurez-vous que "Visible au lancement" est cochée. Le mien n'était pas et mon application est finalement apparue après avoir vérifié cette boîte.

0

J'ai aussi cette question, je coud résolu procédant comme suit:

Dans Interface Builder:

  • propriétaire du fichier: est votre délégué de l'application
  • fenêtre
  • : est la sortie de la fenêtre de délégué de l'application

En XCode: - Si vous utilisez 3.0 ou supérieur, commenter cette ligne de code dans votre délégué de l'application:

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

0

Je le mien fixe en changeant le mode de Scale To Fill à Center. Avant que je change l'alpha et tout ce qu'il a fait était de changer l'arrière-plan en noir. Je me suis dit que les valeurs réelles n'étaient peut-être pas correctes, et j'avais raison. Encore une fois, il suffit de changer le mode de Scale To Fill à Center et voilà, cela devrait fonctionner.

0

Il semble que vous deviez enregistrer la nouvelle interface avant de l'exécuter. Je n'ai jamais développé pour iPhone avant et finalement compris pourquoi je recevais un écran blanc. On dirait qu'il devrait enregistrer automatiquement avant de courir, mais apparemment, il ne le fait pas.

1

J'ai eu le même problème d'obtenir un écran blanc sur simulateur iPhone après la mise à niveau mon iOS 4.2

Après avoir essayé toutes les solutions ci-dessus données par les personnes dans ce fil et rien effectuant le problème,

I essayé de modifier le code suivant dans la méthode

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

.... en écrivant ce code ...

- (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; 
} 
Questions connexes