Ios 在非';看不见?
我环顾了一下堆栈溢出,没有找到任何解决我的确切问题的方法。我正在开发一个应用程序,它使用自定义选项卡视图在4个不同的导航控制器之间切换。我面临的问题是,当旋转设备,然后切换到其他选项卡时,可见的视图控制器仍然按照旧的方向进行布局。我一直在使用Ios 在非';看不见?,ios,objective-c,uiviewcontroller,rotation,screen-rotation,Ios,Objective C,Uiviewcontroller,Rotation,Screen Rotation,我环顾了一下堆栈溢出,没有找到任何解决我的确切问题的方法。我正在开发一个应用程序,它使用自定义选项卡视图在4个不同的导航控制器之间切换。我面临的问题是,当旋转设备,然后切换到其他选项卡时,可见的视图控制器仍然按照旧的方向进行布局。我一直在使用willRotateToInterfaceOrientation:duration:来执行我想要的任何特定于方向的准备工作,使用新方向时,它在VC可见时按预期工作,但我知道,对于在旋转时不可见的视图控制器,不会调用旋转方法 苹果的文件说: 隐藏视图控制器时可
willRotateToInterfaceOrientation:duration:
来执行我想要的任何特定于方向的准备工作,使用新方向时,它在VC可见时按预期工作,但我知道,对于在旋转时不可见的视图控制器,不会调用旋转方法
苹果的文件说:
隐藏视图控制器时可能会发生旋转
如果发生旋转时视图控制器的内容不在屏幕上,则它不会看到旋转消息列表。例如,考虑以下事件序列:
willrotatetointerfaceoorientation:duration:
中所做的任何操作,在viewwillbeen
中,这样在发生旋转时不可见的视图控制器可以在新方向变为可见之前对其进行调整。我的另一个想法是将方向代码从willrotatetointerfaceooritation:duration:
移动到viewWillLayoutSubviews
中,当视图控制器在可见时旋转时调用该代码,当视图控制器在未旋转时变为可见时调用该代码。这样做的问题是,即使没有发生旋转,也可以非常频繁地调用布局方法。还有一个选择是为UIDeviceOrientationIDChangeNotification
注册我的视图控制器,我想我的VCs将收到该通知,无论它们是否可见,尽管我还没有测试过
我想这是一个相当普遍的问题,我想知道——其他人的解决方案是什么?有没有比我想出的解决方案更好的办法
谢谢 是的,在UIDeviceOrientationIDChangeNotification上添加一个观测者应该可以帮助您实现这一目标我直到现在才看到您的响应。谢谢你的投入,这就是我最终做事的方式。