我使用此代码强制我的主屏幕(我的应用程序的第一个屏幕)是纵向的,而其他屏幕仍然支持所有方向:
public class RltNavigationController : UINavigationController
{
public RltNavigationController () : base ()
{
}
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
if(this.TopViewController is HomeScreen )
return UIInterfaceOrientationMask.Portrait ;
else
return UIInterfaceOrientationMask.AllButUpsideDown ;
}
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
// Return true for supported orientations
if(this.TopViewController is HomeScreen )
return (toInterfaceOrientation == UIInterfaceOrientation.Portrait );
else
return (toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown) ;
}
}
现在,假设设备在主屏幕上处于横向(设备是横向但屏幕只显示纵向)。现在,如果用户转到其他视图,其他视图现在显示纵向,而应该显示横向。我可以选择什么解决方案来加载带有实际旋转的第二个视图?
编辑
感谢所有答案,请注意,问题不是我不能强制屏幕为纵向。为了理解问题,请遵循以下场景:
-> 第一个屏幕强制为纵向。
-> 设备是横向的,我在主屏幕(所以主屏幕显示纵向)
-> 现在我切换到另一个支持所有方向的屏幕
-> 在另一个屏幕上,因为父屏幕是纵向的,所以它显示纵向(因为设备是横向的,它应该显示横向)