弹出仅限Landscape-View后,ViewController的方向错误

时间:2010-01-19 13:37:40

标签: iphone uiviewcontroller rotation

在基于导航的应用中,LandscapeViewController仅支持横向模式(所有其他模式都支持这两种模式)。我还有一个“加载屏幕”,建议用户在继续之前旋转手机。这样我可以确保当我的横向视图加载时,它处于横向模式。

当我仍然显示LandscapeVC时将手机旋转到纵向模式时出现问题。我按下后退导航按钮向上导航一级(到支持横向和纵向模式的VC),但即使手机处于纵向模式,上层也会以横向模式显示。我想这是因为当我离开这个视图时我处于纵向模式,然后我在另一个视图中旋转了手机,因此该视图没有收到通知。如果我继续将手机旋转到其他横向模式(例如,在右侧加载LandscapeVC,那么我将上部VC从纵向旋转到左横向模式),它将更新。

我的问题是:如何通知此上方视图手机已旋转,因此当用户将手机置于纵向模式后上升时,上方视图会正确显示?

2 个答案:

答案 0 :(得分:1)

如果您将子视图从堆栈中弹出并返回上一个视图(当前保留在横向中,您可能需要在纵向中),您可以尝试将其发送到setNeedsLayout选择器。

答案 1 :(得分:0)

请试试这个,

这可能会对你有帮助。

一切顺利

- (BOOL) shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation {
    if (interfaceOrientation == UIInterfaceOrientationPortrait)
        return NO;
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft )
        return YES; 
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}