繁体   English   中英

设备方向更改问题

[英]Device orientation change issue

我的viewController1有一个子视图控制器( viewController2 )。 viewController2.view是的子视图viewController1的图。 在用户的操作中,我从它的viewController2删除了viewController2的视图。 过了一会儿我不得不再次添加为子视图。

问题是如果用户在viewController2不可见的情况下旋转设备,在将它再次添加到viewController1的视图后,它的框架和子视图将被放置为设备仍处于旧方向。 甚至viewController2.view.frame也有高度和互换。

有人有解决方案吗? 提前致谢!

在没有看到你的代码的情况下,我猜你正在查看控制器2的引用,即使它不可见。 在这种情况下,您需要将视图旋转事件转发到控制器,以便它像这样知道旋转(对于您要转发的每个事件执行此操作):

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];

    // Forward to view controller 2 if it is not displayed
    if (!viewController2.view) {
        [viewController2 willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    }
}

更好的设计可能是将视图控制器2的视图设置为hidden而不是删除它,它仍然可以在没有人工干预的情况下获取事件。

让我猜你的问题。 你想在方向上展示不同的UIView基础吗?

这是关于更新viewController2以在方向上加载nib。 您可以使横向和纵向笔尖由于方向而支持您的不同UI。 试着从这个答案来看

希望它能帮到你

暂无
暂无

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

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