このコードを使用して、ホーム画面 (アプリケーションの最初の画面) を強制的に縦向きにし、他の画面はすべての向きをサポートしたままにします。
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) ;
}
}
ここで、デバイスがホーム画面で横向きになっているとします (デバイスは横向きですが、画面は縦向きです)。ユーザーが他のビューに移動すると、他のビューは縦向きに表示され、横向きに表示されるようになりました。実際の回転で2番目のビューをロードするために選択できるソリューションは何ですか?
編集
すべての回答に感謝します。すでに問題は、画面を強制的に縦にできないということではないことに注意してください。問題を理解するには、次のシナリオに従ってください。
-> 最初の画面を強制的に縦にします。
->デバイスは横向きで、私はホーム画面にいます(ホーム画面は縦向きに表示されます)
-> すべての向きをサポートする別の画面に切り替えます
-> 親画面が縦向きだったため、別の画面では縦向きに表示されます (デバイスが横向きであるため、横向きに表示する必要があります)。