J'ai eu le même problème. Si vous construisez une application basée sur une fenêtre "à partir de zéro" comme je l'étais, vous devrez faire ce qui suit: (notez que ce sont des étapes pour Xcode 4.2.)
0. Assurez-vous que votre délégué d'application est conforme au protocole UIApplicationDelegate.
Par exemple, supposons que notre délégué s'appelle MyAppDelegate. Dans MyAppDelegate.h, nous devrions avoir quelque chose comme ceci:
@interface MyAppDelegate :
NSObject <UIApplicationDelegate> // etc...
1. Spécifiez le délégué d'application dans main.m
Par exemple,
#import "MyAppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv,
nil, NSStringFromClass([MyAppDelegate class]));
}
}
2. Créez un fichier d'interface de fenêtre principale.
Pour ce faire, cliquez avec le bouton droit sur votre projet et choisissez Nouveau fichier. De là, choisissez Fenêtre dans la section iOS -> Interface utilisateur.
Après avoir ajouté le fichier à votre projet, accédez au résumé du projet (cliquez avec le bouton gauche de la souris sur le projet; cliquez sur le résumé). Sous iPhone / iPod Deployment Info (et la section iPad correspondante si vous le souhaitez) et sélectionnez votre nouveau fichier d'interface dans le " Zone de liste déroulante Interface principale ".
3. Accrochez le tout dans l'éditeur d'interface
Sélectionnez votre fichier d'interface dans la liste des fichiers pour faire apparaître l'éditeur d'interface.
Assurez-vous que le volet Utilitaires est ouvert.
Ajoutez un nouvel objet en faisant glisser un objet de la liste Objets du volet Utilitaires vers l'espace au-dessus ou en dessous de votre objet Window. Sélectionnez l'objet. Cliquez sur l'inspecteur d'identité dans le volet Utilitaires. Remplacez la classe par le délégué de l'application (MyAppDelegate, dans cet exemple.)
Ouvrez l'inspecteur de connexions pour MyAppDelegate. Connectez la sortie de fenêtre à la fenêtre qui existe déjà dans le fichier d'interface.
Cliquez sur le propriétaire du fichier sur la gauche, puis cliquez sur l'inspecteur d'identité dans le volet Utilitaires. Changez la classe enUIApplication
Ouvrez l'inspecteur de connexions pour le propriétaire du fichier. Connectez la sortie délégué à l'objet MyAppDelegate.
4. Enfin, et c'est très important, cliquez sur l'objet Window dans le fichier d'interface. Ouvrez l'inspecteur des attributs. Assurez-vous que "Visible au lancement" est coché.
C'est tout ce que j'avais à faire pour que ça marche pour moi. Bonne chance!