根据iOS & iPadOS 16 Beta 3发行说明:-尝试通过setValue:forKey:
在UIDevice上设置方向不受支持,也不再起作用。相反,他们建议用途:首选的演示界面方向。
在我的例子中,无论是使用preferredInterfaceOrientationForPresentation
还是requestGeometryUpdate
,强制视图控制器方向在iOS 16测试版中都不起作用。
以前,UIDevice.current.setValue(UIInterfaceOrientation.landscapeLeft.rawValue, forKey: "orientation")
工作正常。
8条答案
按热度按时间1cosmwyk1#
我在下面代码中遇到的问题是,我试图在关闭模态视图时执行此操作,但其下的视图更新不够快。如果我将requestGeometryUpdate放在一个单独的按钮上,那么当我关闭视图时,它将工作。
b4lqfgs42#
对我有用。
在应用程序委派中,
在视图控制器中,
在帮助程序中,
niknxzdl3#
我注意到我的问题似乎可以通过调用下面的方法解决:
[UIView控制器设置需要更新支持的接口
你可以给予看。
zrfyljdw4#
setValue:forKey
是旧的NSObject
(NSKeyValueCoding
)的一个方法。它没有正式的文档记录,也没有得到UIDevice
类的支持。使用它是考虑使用一个私有的api。苹果可以随时终止它。j2qf4p5b5#
苹果发布了新的API,替换为setValue:forKey:“orientation”。Apple update
但是我有关于
UIDevice.orientationDidChangeNotification
的问题,它不工作xggvc2p66#
这对我很有效
如何使用
只需在您的UIViewController上调用它:
2guxujil7#
按照Apple的文档,您需要
请求使用指定的几何体首选项对象更新窗口场景的几何体。
https://developer.apple.com/documentation/uikit/uiwindowscene/3975944-requestgeometryupdate/
因此,使用示例中的代码,您可以使用
requestGeometryUpdate
和setNeedsUpdateOFSupportedInterface
更改我们在视图中设置方向的方式5sxhfpxr8#
我尝试了以上所有的解决方案,似乎他们不是100%的工作。通过这篇文章https://developer.apple.com/forums/thread/707735后,我得到了提示。让我们试试下面的代码。它为我工作。