繁体   English   中英

旋转视图控制器不在选项卡栏应用中的视图中

[英]Rotate view controller not in view in tab bar app

我有一个标签栏应用程序。 在每个视图控制器上旋转都很好。

我在风景中,如果我去查看控制器B并旋转为纵向,然后回到视图控制器A,A的视图并没有旋转-因为它没有得到事件-所以UI都没了比例,我需要旋转设备进行分类。 不好。

我可以听UIDeviceOrientationDidChangeNotification,但我不想手动调用旋转方法(willRotate,willAnimate,didRotate)...因为这显然很脆弱。

我缺少什么才能正常工作?

我认为问题在于我的视图中的代码需要在轮播上运行,而这仅发生在轮播通知方法中。

我解决这个问题的方法是:

 - (void) deviceOrientationChanged:(NSNotification *)notification {
    if (self.isViewLoaded && !self.view.window) {
        // viewController view is loaded, but not visible
        [self viewDidRotateOffscreen];
    }
 }
  1. willRotate,willAnimate,didRotate内部的代码被拉到一个单独的方法中。
  2. 我听了UIDeviceOrientationDidChangeNotification,并设置了BOOL标志viewDidRotateOffscreen(请参见上面的代码)
  3. 在viewWillAppear上,检查BOOL标志viewDidRotateOffscreen,如果为true,则运行在步骤1中刚刚提到的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM