2 Stimmen

"didRotateFromInterfaceOrientation:" nicht aufgerufen

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.

0voto

UPT Punkte 1500

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X