37 votes

Xcode 4.2 iOS Empty Application et storyboards

Je suis un débutant en Xcode et j'essaie de créer ma première application de formation. Comme apparemment le modèle Empty Application est le seul modèle qui offre des données de base pré-intégrées, je l'ai choisi. Cependant, après cela, je n'arrive pas à faire fonctionner l'interface utilisateur (elle reste vide).

Ce que j'ai fait :

  • Modèle de demande vide
  • Nouveau fichier Storyboard pour iPad
  • J'y ai ajouté le contrôleur de la barre d'onglets
  • Modification du Storyboard principal dans la vue Résumé du projet
  • Hit R
  • Fixer l'écran blanc pur de l'iPad, sans aucun onglet.

J'ai essayé de faire une comparaison avec un autre projet que j'ai créé en tant qu'application de barre d'onglets (qui reflète mes changements de Storyboard), sans résultat.

76voto

Robin Summerhill Points 10062

Commentez (ou supprimez) le code de création et d'affichage de la fenêtre dans AppDelegate.m comme suit :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // self.window.backgroundColor = [UIColor whiteColor];
    // [self.window makeKeyAndVisible];

    return YES;
}

Lorsque vous utilisez un storyboard, une UIWindow principale est créée automatiquement pour vous. Ce qui se passe dans votre cas, c'est que vous créez une autre fenêtre blanche et la placez au-dessus de l'onglet UI.

AUSSI - Notez que le modèle Master/Detail vous offre également une option de données de base.

39voto

Scott Gardner Points 692

Pour un projet d'application vide, vous devez faire deux choses, après avoir ajouté votre fichier Storyboard...

  1. Ajoutez une ligne au fichier Info.plist de votre projet :

    Key: Main storyboard file base name
    Value: Storyboard

    (ou le nom que vous avez donné à votre fichier de storyboard)

  2. Effacer le contenu de application:didFinishLaunchingWithOptions: sauf return YES; :

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }

9voto

Jim Points 39574

Les modèles de projet Master-Detail et Utility proposent également les données de base en option.

Les modèles d'Apple pour Core Data sont assez horribles. Ils intègrent beaucoup trop de fonctionnalités dans le délégué de l'application et utilisent inutilement le chargement paresseux, ce qui complique encore plus les choses.

Il est préférable d'examiner le code généré et d'ajouter la fonctionnalité en tant que classe distincte dans un projet que vous démarrez sans Core Data.

Pour répondre à votre question immédiate, le modèle vide par défaut crée une fenêtre de manière programmatique dans le délégué de l'application. application:didFinishLaunchingWithOptions: méthode. Le story board crée lui-même une fenêtre, vous devez donc supprimer ce code du délégué de l'application. La seule chose dont vous avez besoin dans cette méthode est return YES; .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X