Question

How do I keep a Monotouch iPhone app in landscape mode when loading a new view controller from an xib?

To switch to landscape mode when the app loads I use:

 app.StatusBarOrientation = UIInterfaceOrientation.LandscapeRight;

I would like to be able to rotate the view in interface builder and design the interface. I can hit the rotation arrow in the corner of my interface builder view to rotate it and save, but it does not affect the app when it is run.

Was it helpful?

Solution 2

This link Monotouch rotate view in Portrait/Landscape say to use:

viewRef.transform = CGAffineTransformMakeRotation(angle);

So I tried

 this.view.Transform =  CGAffineTransformMakeRotation(3.141f * 0.5f);

But I got strange results. It turned out I was using .view instead of .View. Now it works great with:

 this.View.Transform =  CGAffineTransformMakeRotation(3.141f * 0.5f);

OTHER TIPS

Isn't it even more easy just to use this:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        // Return true for supported orientations
        return ((toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown) && (toInterfaceOrientation != UIInterfaceOrientation.Portrait));
    }

This way it will only autorotate when the device is in landscape mode (both the landscapes)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top