diff options
-rw-r--r-- | doc/classes/DisplayServer.xml | 1 | ||||
-rw-r--r-- | platform/ios/display_server_ios.mm | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml index c7df562304..cd39543c45 100644 --- a/doc/classes/DisplayServer.xml +++ b/doc/classes/DisplayServer.xml @@ -961,6 +961,7 @@ <param index="1" name="screen" type="int" default="-1" /> <description> Sets the [param screen]'s [param orientation]. See also [method screen_get_orientation]. + [b]Note:[/b] On iOS, this method has no effect if [member ProjectSettings.display/window/handheld/orientation] is not set to [constant SCREEN_SENSOR]. </description> </method> <method name="set_icon"> diff --git a/platform/ios/display_server_ios.mm b/platform/ios/display_server_ios.mm index 5637931e73..bfb09b6861 100644 --- a/platform/ios/display_server_ios.mm +++ b/platform/ios/display_server_ios.mm @@ -568,6 +568,11 @@ float DisplayServerIOS::screen_get_max_scale() const { void DisplayServerIOS::screen_set_orientation(DisplayServer::ScreenOrientation p_orientation, int p_screen) { screen_orientation = p_orientation; + if (@available(iOS 16.0, *)) { + [AppDelegate.viewController setNeedsUpdateOfSupportedInterfaceOrientations]; + } else { + [UIViewController attemptRotationToDeviceOrientation]; + } } DisplayServer::ScreenOrientation DisplayServerIOS::screen_get_orientation(int p_screen) const { |