2017-10-30 1 views
1

benötigen Bildschirm-Rotation auf bestimmte View-Controller unter-
Xamarin iOS Prevent Rotation für spezifische Viewcontroller

public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation toInterfaceOrientation) 
    { 
     return false; 
    } 


    public override bool ShouldAutorotate() 
    { 
     return false; 
    } 


    public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation() 
    { 
     return UIInterfaceOrientation.Portrait; 
    } 


    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations() 
    { 
     return UIInterfaceOrientationMask.Portrait; 
    } 


Nichts funktionierte
Ich habe versucht, zu verhindern.

Vielen Dank im Voraus!

Antwort

4

Sie können dieses Problem mit dieser Erklärung lösen.

1) In fügen Sie AppDelegate ein boolean zum Beispiel

public bool disableAllOrientation = false; 

2) Ändern Sie bitte Ihre UIInterfaceOrientationnMask im AppDelegate

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, UIWindow forWindow) 
     { 
      if (disableAllOrientation == true) 
      { 
       return UIInterfaceOrientationMask.Portrait; 
      } 
      return UIInterfaceOrientationMask.All; 
     } 

3) Rufen Sie in der Steuerung der Ansicht, die Sie Ausrichtung wollen ändern

appDelegate.disableAllOrientation = true; 

4) und wenn die Ansicht geschlossen ist oder geändert werden muss Setzen Sie den booleschen Wert auf false und setzen Sie Ihren Bildschirm nur in die ursprüngliche Ausrichtung, wenn Sie möchten.

Ich hoffe, dass dies Ihr Problem zu lösen Ich habe das gleiche Problem vor Tagen und das hilft mir.

+0

Danke Marcos! Es funktioniert jetzt ! –

+1

Ihre Begrüßung Nikhil, diese Arbeit, auch für den umgekehrten Fall. Wenn Sie eine Porträtanwendung haben und alle Ausrichtung für eine Ansicht aktivieren möchten. Grüße! –

+1

Ja. Die Implementierung verstanden. Wir können es über das AppDelegate steuern. Cheers –

Verwandte Themen