在基于导航的应用中,LandscapeViewController仅支持横向模式(所有其他模式都支持这两种模式)。我还有一个“加载屏幕”,建议用户在继续之前旋转手机。这样我可以确保当我的横向视图加载时,它处于横向模式。
当我仍然显示LandscapeVC时将手机旋转到纵向模式时出现问题。我按下后退导航按钮向上导航一级(到支持横向和纵向模式的VC),但即使手机处于纵向模式,上层也会以横向模式显示。我想这是因为当我离开这个视图时我处于纵向模式,然后我在另一个视图中旋转了手机,因此该视图没有收到通知。如果我继续将手机旋转到其他横向模式(例如,在右侧加载LandscapeVC,那么我将上部VC从纵向旋转到左横向模式),它将更新。
我的问题是:如何通知此上方视图手机已旋转,因此当用户将手机置于纵向模式后上升时,上方视图会正确显示?
答案 0 :(得分:1)
如果您将子视图从堆栈中弹出并返回上一个视图(当前保留在横向中,您可能需要在纵向中),您可以尝试将其发送到setNeedsLayout
选择器。
答案 1 :(得分:0)
请试试这个,
这可能会对你有帮助。
一切顺利
- (BOOL) shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation {
if (interfaceOrientation == UIInterfaceOrientationPortrait)
return NO;
if (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft )
return YES;
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}