Meine App verfügt über einen Begrüßungsbildschirm, der nur im Hochformat angezeigt werden kann. Nachdem der Benutzer den Willkommensbildschirm angetippt hat, möchte ich einen anderen Bildschirm zeigen, der sowohl im Hochformat als auch im Querformat verwendet werden kann.Wie entferne ich einen View-Controller aus meiner View-Hierarchie?
Ich habe einen View-Controller einrichten, die shouldAutorotateToInterfaceOrientation:
YES
für UIInterfaceOrientationPortrait
nur Rückkehr implementiert, und ich fügen Sie den Blick auf das Fenster mit [window addSubView:view]
. Ich markiere diese Ansicht mit dem Tag 1
.
Wenn der Benutzer durch die Begrüßungs Ansicht klopft und die App bewegt sich auf die neue Ansicht, die ich tun:
[[window viewWithTag:1] removeFromSuperView];
[window addSubView:myViewController.view];
Wo MyViewController ist eine Instanz der View-Controller der zweiten Ansicht (das übernimmt die shouldAutorotateToInterfceOrientation
Methode richtig) .
Wenn ich jetzt rotiere, ruft es immer noch shouldAutorotateToInterfceOrientation
auf dem View-Controller der ursprünglichen Ansicht auf und ruft es nicht auf dem View-Controller der neuen Ansicht auf.
This note from Apple besagt, dass nur ein View-Controller Rotationsmeldungen erhält; Ich habe jedoch den anderen View-Controller entfernt.
Was mache ich falsch?
Also nur der ursprüngliche View Controller wird jemals von Rotationen benachrichtigt? –
Entschuldigung, die erste Antwort war falsch. Bearbeitete Antwort zu korrigieren. –