2010-11-26 5 views
0

Ich habe erstellt und iPad-Anwendung. Ich begann mit einer window-basierten Anwendung und fügte zwei View-Controller hinzu (loginviewcontroller, detailviewcontroler). beide haben ihre eigenen XIB'S. Das Objekt loginviewcontroller wurde in der Methode appdelegate applicationdidfinishlaunch hinzugefügt. Ich schrieb Code, um zwischen zwei Ansichten hin und her zu wechseln. Hier ist der Code.Orientierungsproblem

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

    // Override point for customization after application launch. 
    Login *mylogin = [[Loginviewcontroller alloc] init]; 
    [window addSubview:mylogin.view]; 
    //detailview *tv=[[detailviewcontroller alloc] init]; 
    // [window addSubview:tv.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

Das Problem ist, dass die willrotatetointerfaceorientation Methode nur von der loginviewcontroller Klasse läuft, auch wenn ich in dem detailviewcontroller bin.

Wenn ich die Ansicht tickets dem appdelegate hinzufüge, dann führt sie die Methode willrotatetointerfaceorientation von detailviewcontroller aus, also führt sie die Methode willrotatetointerfaceorientation nur von dem Objekt aus, das zu appdelegate hinzugefügt wurde.

Wie führe ich die 2 View-Controller dazu, die entsprechenden Methoden zur Umorientierung auf die Benutzeroberfläche auszuführen?

Antwort

0

UIViewController hat die Methode

  • (BOOL) ShouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation

überschreiben diese Methode in Ihre beiden Viewcontroller Klassen (dh (loginviewcontroller, detailviewcontroler)

Schreib diese Code

- (BOOL) sollteAutorotateToInterface Orientierung: (UIInterfaceOrientation) interfaceOrientation { // schreibe deinen Code, den du während der Rotation haben willst

zurück Ja;

}

0

Die Rotationsnachrichten werden nur an den Controller der obersten Ansicht gesendet. Sie sollten sie manuell in geeigneten Methoden weiterleiten.