386 votes

Les Applications sont censés avoir une vue de la racine de contrôleur à la fin de lancement de l'application

J'obtiens l'erreur suivante dans ma console:

Les Applications sont censés avoir une vue de la racine de contrôleur à la fin de lancement de l'application

Ci-dessous mon application:didFinishLaunchWithOptions méthode:

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

    // Set Background Color/Pattern
    self.window.backgroundColor = [UIColor blackColor];
    self.tabBarController.tabBar.backgroundColor = [UIColor clearColor];
    //self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"testbg.png"]];

    // Set StatusBar Color
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

    // Add the tab bar controller's current view as a subview of the window
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

AU bureau de l'IB, le tabBarController du délégué est relié à l'Application Délégué.

Tout savoir comment résoudre ce problème?

438voto

OrdoDei Points 216

Remplacer dans AppDelegate

 [window addSubview:[someController view]];

pour

  [self.window setRootViewController:someController];

189voto

sho Points 575

J'ai eu ce même problème. Vérifiez votre main.m. Le dernier argument doit être défini sur le nom de la classe qui implémente l'UIApplicationDelegate protocole.

retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");

70voto

Warkst Points 2842

J'ai eu le même message d'erreur lorsque vous essayez de modifier le premier-vue-contrôleur, qui était chargé à

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

Au début, je ne savais pas vraiment où l'erreur venait justement j'ai rétréci vers le bas et a trouvé ce qui n'allait pas. Il s'avère que j'ai essayé de modifier l'affichage de la vue avant il est venu réellement sur l'écran. La solution était donc de déplacer ce code dans le viewcontroller qui me donnait mal à partir

- (void)viewDidLoad

pour

- (void)viewDidAppear:(BOOL)animated

et l'erreur a cessé de paraître. Mon problème a été causé par un UIAlertView spectacle.

Dans votre cas, je vous suggère de vérifier le code dans le tabBarController active de vue-contrôleur (comme c'est probablement un problème de ce point de vue contrôleur). Si cela ne fonctionne pas, essayez de régler les paramètres de départ à la plume de fichier au lieu d'un code ou si vous voulez le faire dans le code, essayez de déplacer le code de la tabBarController active viewcontroller de la méthode appropriée.

Bonne chance!

47voto

jlujan Points 900

J'ai obtenu ce lors du démarrage avec le "Vide de l'Application" modèle, puis ajouter manuellement un XIB. Je l'ai résolu par la mise en nom de Plume, comme suggéré par le Sunny. L'étape manquante dans ce scénario est la suppression

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

à partir de

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

Comme il va remplacer l'instance de votre fenêtre créée dans le fichier Xib. C'est en supposant que vous avez créé un ViewController et câblé avec votre fenêtre et Délégué d'Application dans le fichier XIB.

46voto

Sunny Points 261

Ce qui m'est arrivé. Résolu par la modification .fichier plist. Spécifiez le Principal plume nom de base du fichier.(Doit être MainWindow.xib). Espérons que cela aidera.

enter image description here

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