web-dev-qa-db-fra.com

Application vide et storyboards Xcode 4.2 iOS

Je suis un débutant sur Xcode et j'essaie de créer ma première application d'entraînement. Étant donné que le modèle d'application apparemment vide est le seul modèle qui offre des données de base pré-intégrées, je choisis cela. Cependant, après cela, je ne peux pas faire fonctionner l'interface utilisateur (elle reste vide).

Ce que j'ai fait:

  • Modèle d'application vide
  • Nouveau fichier Storyboard iPad
  • Splashed Tab Bar Controller sur elle
  • Storyboard principal modifié dans la vue Résumé du projet
  • Frappé ⌘R
  • Regardé l'écran de l'iPad d'un blanc pur, sans aucun onglet

J'ai essayé de me différencier d'un autre projet que j'ai créé en tant qu'application de barre d'onglets (qui reflète mes changements de Storyboard), sans aucune perspicacité.

37
Amadan

Mettez en commentaire (ou supprimez) la création de la fenêtre et affichez le code 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 fenêtre d'interface utilisateur 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'interface utilisateur de l'onglet.

ÉGALEMENT - notez que le modèle maître/détail vous donne également une option de données de base.

76
Robin Summerhill

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

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

    Key: Main storyboard file base name
    Value: Storyboard
    

    (ou tout ce que vous avez nommé votre fichier de storyboard)

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

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

Les modèles de projet Master-Detail et Utility proposent également Core Data en option.

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

Il vaut mieux regarder le code généré et ajouter la fonctionnalité en tant que classe distincte dans un projet que vous démarrez sans Core Data.

Cependant, pour répondre à votre question immédiate, le modèle vide par défaut crée une fenêtre par programme dans le application:didFinishLaunchingWithOptions: méthode. Le story-board définit une fenêtre elle-même, 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;.

9
Jim