iphone - 无论旋转如何锁定方向

标签 iphone objective-c ios orientation

我有一个 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/

相关文章:

iOS 崩溃日志 NSObject doesNotRecognizeSelector : - at which line?

iphone - 如何在 iOS 应用程序中将帧从 FFmpeg 渲染到屏幕?

iPhone 属性值更改的自定义事件

iphone - 在模拟器上的钥匙串(keychain)中保存密码

objective-c - 永久保存 CoreData

ios - Swift 中的实时录音

ios - 如何在 iOS 应用程序中评论 instagram 提要

ios - 循环在第一次被调用时只运行一次,第二次无限次

iOS 自录制开始以来更新录制时间的正确方法

ios - 缓存控制 : max-age does not make AFNetworking cache the response