【发布时间】:2025-07-01 04:45:02
【问题描述】:
我有一个支持 iPad 和 iPhone 的通用应用程序。在 iPad 上,我支持所有方向,而在 iPhone 上,我只支持纵向。
我希望一个视图控制器(以模态方式显示)在 iPhone 上运行时以设备所在的任何方向显示。我看过许多建议使用 -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 应用程序委托的教程和 SO 帖子方法,这在旋转模态视图控制器方面似乎工作得很好。但是,当我在横向模式下关闭模式视图时,整个应用程序仍然是横向的。
理想情况下,一旦模式视图被关闭,应用程序应立即返回纵向模式。
经过调查,在关闭视图控制器后似乎没有调用-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 回调,我无法弄清楚原因。
我玩过示例应用程序here,当关闭视图控制器时会触发回调,我不知道为什么。我能看到的唯一区别是我的视图层次结构要复杂得多,而且我显示的是导航控制器而不是显式视图控制器,但我看不出这应该如何影响回调。
有什么想法可以解决这个问题吗?
谢谢
【问题讨论】:
标签: ios objective-c iphone modalviewcontroller uiinterfaceorientation