Xamarin.Plugin.DeviceOrientation
Xamarin.Plugin.DeviceOrientation copied to clipboard
App crashes when I lock orientation to PortraitFlipped
Hi, in my app I need to change to PortraitFlipped at one time. But when I try to do this, the app crashes with this error: Foundation.MonoTouchException: Objective-C exception thrown. Name: UIApplicationInvalidInterfaceOrientation Reason: Supported orientations has no common orientation with the application, and [Xamarin_Forms_Platform_iOS_PlatformRenderer shouldAutorotate] is returning YES
This is my Info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
In my AppDelegate I have put this:
[Export("application:supportedInterfaceOrientationsForWindow:")]
public UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, IntPtr forWindow)
{
return DeviceOrientationImplementation.SupportedInterfaceOrientations;
}
The other orientations are not causing trouble. I am working with Xamarin.Forms, the device is an iPhone 8 and the crash occurs both on the real device and simulator.
Hi @Stensan
Which version of Xamarin.Forms do you use?
Hi @wcoder I use the latest stable version 3.0.0.482510
Ok, I will try to investigate the issue.
Workaround: Try to use the latest 2.x version of Xamarin.Forms.
@Stensan
Would you please provide me an example of plugin using, when the application crashed (for quickly reproduce)?
I installed older Xamarin.Forms versions (2.5.1, 2.5.0 and 2.4.0) but each time I get the same exception.
Oh, yes, you right.
Try version 2.3.5.256-pre6
So it seems this is indeed a bug in Xamarin.Forms. I'll go and open a bug report there. Thanks again.
Currently, I have an idea for this issue (workaround):
- Create new custom renderer as UIViewController for XF page;
- Override the same methods in this ViewController (as here https://github.com/wcoder/Xamarin.Plugin.DeviceOrientation#ios-specific-support)
No sorry, this doesn't work. There is no more error now, but page does not rotate to upside down. I think this is really a xamarin bug, because even without plugin the portrait upside down doesn't work as expected when I turn my phone.