Ich versuche, einer Ansicht einer Controller-View in einer kleinen Ansicht der Hauptansicht hinzuzufügen. Allerdings wird die didRotateFromInterfaceOrientation: Methode des Untercontrollers nicht aufgerufen, sodass ich keine Änderungen für die Orientierungsänderung vornehmen kann.
Antwort
Zu viele Anzeigen?Es ist ein Problem des Lebens des Controllers. Ich vermute, dass du den Controller instanziiert hast und die Subview hinzugefügt hast, und dann die Instanz freigegeben hast. Wenn du jetzt das Gerät drehst, werden die hinzugefügten Subview-Rotationsdelegationsmethoden nicht aufgerufen.
Der zweite Grund ist, dass immer nur der Eltern-View-Delegat aufgerufen wird, wenn du die Subview hinzugefügt hast, weil der Aufrufer nur eine Instanz des Eltern-View-Controllers hat. Der Aufrufer kann ein Navigationscontroller (bei einer navigationsbasierten Anwendung) oder ein TabBarController (bei einer tabbasierten Anwendung) sein. Wenn du die Subview-Methode im Rotationsfall aufrufen möchtest, musst du sie explizit aufrufen, wie folgt:
if(subviewController != nil){
if([subviewController respondToSelector(rotateMethodOfSubView:)])
[subViewController performSelector(rotateMethodOfSubView:) withObject: self];
}
Dies sollte hilfreich sein, um das Problem zu lösen.
- See previous answers
- Weitere Antworten anzeigen