2012-04-10 3 views
0

Ich weiß, es gibt andere Beiträge mit ähnlichen Fragen, und ich habe sie überprüft, aber keiner von ihnen scheint über meine spezifischen Ausgabe, also bitte bitte mit mir."Anwendungen werden voraussichtlich einen Root-View-Controller am Ende des Anwendungsstarts haben" Fehler nur auf Gerät

Ich entwickle eine Anwendung, die nur auf dem iPad laufen soll, also kein universelles Zeug: die MainWindow Nib-Datei ist für iPad konzipiert.

Die Sache ist, solange ich es auf dem iPad-Simulator von Xcode (sowohl 5.0 und 5.1) läuft alles gut. Aber sobald ich versuche, es auf einem tatsächlichen iPad (mit iOS 5.0) zu starten, bekomme ich nur einen leeren Bildschirm und die Meldung "Anwendungen haben einen Root-View-Controller am Ende des Anwendungsstarts" auf der Konsole.

Hier ist ein Code, der relevant sein sollte: me

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

... 
self.window.rootViewController = self.splitViewController; 
[self.window makeKeyAndVisible]; 

VistaInizialeViewController *inizialeAppoggio = [[VistaInizialeViewController alloc] initWithNibName:@"VistaInizialeViewController" bundle:nil]; 
self.vistaIniziale = inizialeAppoggio; 
[inizialeAppoggio release]; 
id debug = self.window.rootViewController; 
[self.window.rootViewController.view addSubview:self.vistaIniziale.view]; 
... 
debug = self.window.rootViewController; 

Also, was ist verwirrend ist die folgende: Wenn ich den obigen Schritt für Schritt auf dem Simulator, der Debug-Variable (die Wurzel-View-Controller) ausgeführt ist initialisiert und alles, statt, wenn ich es auf einem echten Gerät ausführen, ist es nur NULL.

Ok, das ist es von mir, ich würde wirklich jede Hilfe mit diesem schätzen.

Danke allen.

Antwort

0

1) Das Gerät ist case sensitive, der Simulator ist nicht.

Sind Sie sicher, dass die Nib-Datei 'VistaInizialeViewController' heißt, nicht etwa 'vistaInizialeViewController' oder 'VistainizialeViewController'?

2), dass self.splitViewcontroller prüfen ist nicht nil - stellen Sie sicher, dass Sie die richtigen xib Dateinamen für die Haupt xib angegeben haben, die beim Start geladen wird (oder, wenn Sie es im Code sind zu erzeugen, aus einem Haltepunkt in und Schritt um zu beweisen, dass es richtig generiert wird)

+0

Nein, die Nib-Datei heißt eigentlich "VistaInizialeViewController". Dies ist von einer Copy-and-Paste-Sequenz, da bin ich mir sicher. – FTSwift

+0

OK, versuchen Sie die vorgeschlagene Nummer (2) in meiner bearbeiteten Antwort :) – deanWombourne

0

Ok, ich habe es gelöst. Was ich tat, war, den folgenden Code vor self.window.rootViewController Einstellung

UISplitViewController *splitAppoggio = [[UISplitViewController alloc] init]; 
CategoriesViewController *categorieVC = [[[CategoriesViewController alloc] init] autorelease]; 
DetailViewController *dettaglioVC = [[[DetailViewController alloc] init] autorelease]; 
categorieVC.detailViewController = dettaglioVC; 
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:categorieVC]; 
NSArray *arrayVC = [NSArray arrayWithObjects:navVC,dettaglioVC, nil]; 
splitAppoggio.viewControllers = arrayVC; 
splitAppoggio.delegate = dettaglioVC; 
self.splitViewController = splitAppoggio; 
[splitAppoggio release]; 

Damit es auch richtig auf einem Gerät funktioniert. Warum es nicht benötigt, um auf dem Simulator zu laufen, während dies benötigt wird, auf dem iPad zu laufen ist immer noch jenseits von mir ...