OK, erfahrene Programmierer, bitte seien Sie vorsichtig...
Ich habe Probleme, eine sehr einfache "Hello World"-App mit einer Ansicht automatisch zu drehen. Ich gehe durch die üblichen "Hello World" Schritte:
-
Erstellen Sie ein neues View-basiertes Projekt.
-
Doppelklicken Sie auf die .xib-Datei für den ViewController.
-
Fügen Sie ein Element aus der Bibliothek hinzu. Ich habe sowohl ein Etikett als auch einen Schieberegler ausprobiert.
-
Ändern Sie "Streben und Federn" in "Federn", damit das Element in der Mitte der Ansicht bleibt.
-
Speichern Sie und bearbeiten Sie dann die .m-Datei für den ViewController so, dass sie lautet:
/* // Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return YES; } */
(Ähm... Duh. Ich habe es gerade gesehen. Aber ich werde meine Geschichte zu Ihrer Unterhaltung fortsetzen.)
-
Speichern, erstellen, ausführen, rotieren und feststellen, dass nichts dreht sich, wenn ich den iPhone-Simulator drehe. Und, nein, ich habe meinen Laptop nicht gedreht... Ich habe die Tastaturkürzel benutzt!
Nach etwa einer Stunde Googeln nach der Antwort stellte sich Frustration ein. Überall, wo ich hinsah, sagte jede Quelle das Gleiche: Ändern Sie einfach den Rückgabewert in "ja". Und doch...
Ich habe sogar Debugger-Haltepunkte gesetzt! Keiner von ihnen wurde getroffen! (Schock, Überraschung!) Ich dachte, ich wüsste nicht, wie man den Debugger benutzt, und setzte einen Haltepunkt bei "initWithNibName". Raten Sie mal, was?! Das wurde auch nicht getroffen! Was zur Hölle?!
Also habe ich Apples WhichWayIsUp App heruntergeladen, um meine Breakpoint l33t Breakpoint Skilz zu testen. Sicher genug, es piepst, wenn ich das "iPhone" drehe. Was mache ich also falsch?!
Sicherlich, ich bin nicht dass unwissend, dass ich ... nein, warten Sie, ich nehme das zurück. Wenn Sie meinen Fehler oben gesehen haben, dann denken Sie sicher: "Ja, er ist so unwissend". Und Sie haben Recht.
Für diejenigen unter Ihnen, die über diese Frage gestolpert sind, ähnlich frustriert sind und das Problem noch nicht erkannt haben, hier die Antwort: Die gesamte shouldAutorotateToInterfaceOrientation Methode ist durch "/* */"-Kommentar-Token gekapselt. Sie wurde nie kompiliert, geschweige denn aufgerufen.
Soweit ich weiß, geht aus keiner der Quellen, die ich gefunden habe, hervor, dass Sie sicherstellen müssen, dass der Codeblock unkommentiert ist. In mehreren heißt es: "Sie müssen nur genau eine Zeile des Codes ändern. Und abgesehen von den beiden anderen mit den Kommentarzeichen darauf, haben sie genau recht.
Wenn ich gerade einem anderen Anfänger geholfen habe, dann ist das großartig. Wenn ich dich zum Lachen gebracht habe, dann ist das sogar noch besser.
Vielen Dank an alle für ihre Hilfe!