gpt4 book ai didi

ios - 在我的 Controller 中未调用 supportedInterfaceOrientations

转载 作者:行者123 更新时间:2023-11-28 19:03:37 25 4
gpt4 key购买 nike

我有一个非常复杂的问题(或者我认为如此)。我正在处理遗留应用程序修复一些问题,并使其支持 4 英寸显示器和 iOS 7。问题是该应用程序的体系结构非常复杂,有几个类别和方法调配以在 iOS 4.3 中实现自定义外观和 5.

该应用程序与金融市场和证券交易所有关。该应用程序专为纵向导航而设计,但有几个 Controller 除外,倾斜手机会将 View 更改为股票/市场图表。整个应用程序有一个 UINavigationController,在许多地方还有一个 UITabBarController。在我感兴趣的controller中,结构如下:

  • UINavigationController
    • 方向 Controller ,当方向改变时改变 View
      • UITabBarController 有几个 UIViewControllers
        • UITabBarController 的第一个插槽中的市场/股票 Controller
      • 图表 Controller

这个结构曾经是这样工作的。当手机倾斜时,shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation(这是 iOS 6 之前的版本)在我的方向 Controller (同时具有 UITabBarController 和图表 Controller )上被调用,并检查 UITabBarControllerselectedIndex 是市场 Controller 还是股票 Controller ,它用横向图 TableView 替换 View 。

在 iOS 6 之后,supportedInterfaceOrientationsshouldAutorotate 被添加到我们的代码中,并且它也能正常工作。然而,在升级到 XCode 5 并使用 iOS 7 作为基础 SDK 构建之后,shouldAutorotate 没有在我的方向 Controller 上被调用,但是它在 UITabBarController 和市场/股票控制者。

有什么想法吗?

最佳答案

子类化您的导航 Controller 并覆盖该方法:

// CustomNavigationController.m

- (BOOL)shouldAutorotate {
return [self.topViewController shouldAutorotate];
}

然后在需要旋转的 View Controller 中添加shouldAutorotate方法并返回YES:

// ViewController.m

- (BOOL)shouldAutorotate {
return YES;
}

关于ios - 在我的 Controller 中未调用 supportedInterfaceOrientations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com