我有一个 UITabBar
应用程序,其中嵌入了 UINavigation
的某些 View 。在一个特定的导航 View 上,我显示图形/图表,最好以横向方式显示它们,就像 iPhone 向左或向右旋转一样。该应用程序的其余部分更适合纵向。因此,我想“强制”包含图形的 View 以横向方式加载,无论用户如何物理旋转设备。我试过:
#pragma mark - Rotation
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
但这似乎对 View 没有任何影响。如果我在“支持的界面方向”中为我的目标选择“横向左”图标,则它允许整个应用程序在设备旋转时重新定向。有没有办法将我的应用程序锁定为所有正常 View 的纵向并锁定包含图形的 View 的横向,以便应用程序忽略实际的设备方向?
最佳答案
你是对的。在标签栏应用程序中,它不是被调用的各个 View Controller 的shouldAutorotateToInterfaceOrientation:方法。仅调用选项卡栏 Controller 的shouldAutorotateToInterfaceOrientation来确定 View 是否可以定向以及如何定向。
但是,各个 View Controller 无论如何都应该相应地实现shouldAutorotateToInterfaceOrientation
。这些方法仍然用于确定推或拉 View Controller 时动画效果的方向。
我自己从未尝试过以下操作:您可以尝试对选项卡栏 Controller 进行子类化,并根据当前向用户显示的 View 相应地响应 shouldAutorotateToInterfaceOrientation
。 但我担心苹果有充分的理由强制我们支持标签栏应用程序中所有 View 的相同方向。
关于iphone - 无论旋转如何锁定方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13228758/