支持多界面,但主屏幕只有单一界面,在 iOS8 + iPhone 中不工作

2023-11-25

我有如下所示的视图结构。

HomeView(Support only portrait mode)
 |
 |
 V
View1(Support all orientation)
 |
 |
 V
View2(Support all orientation)

问题 :
当我coming back from View2(Landscape mode) to HomeView通过致电popToRootViewController方法,没有调用supportedInterfaceOrientationsForWindow的方法应用程序_委托并显示首页查看于landscape mode.

Image:

enter image description here

Note :
当我通过调用 popToRootViewController 方法从 View1(横向模式)返回到 HomeView 时,不会发生同样的事情 它将调用supportedInterfaceOrientationsForWindow并且一切都很好。
如果我在 iOS 7 中使用 XCode 6 运行应用程序,一切都很好。

I read below question but it did not help me.
关闭模态视图控制器时如何保持呈现视图控制器的方向?

在上面的链接中mattiOS8 stop support for friezing orientation,但我没有找到它apple document如果你有任何reference link关于此更改,请分享。

问题 :
1]为什么委托方法supportedInterfaceOrientationsForWindow没有调用。
2] 是否有可能有一个视图支持单一方向,而所有其他视图将支持所有方向。

Thanks


我解决它并发布答案,因为它可能会对某人有所帮助

问题 :
我在supportedInterfaceOrientationsForWindow 中有以下代码。

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    // Suport only portrait mode for home screen
    if([self.navigationController.topViewController isKindOfClass:[ViewHome class]])

    {
        return UIInterfaceOrientationMaskPortrait;
    }
    return UIInterfaceOrientationMaskAll;
}

But delegate method supportedInterfaceOrientationsForWindow没有被调用 使用时popToRootViewControllerAnimated方法当有more then two view Cotnrollers存在于堆栈中。

解决方案 :
步骤1:创建导航控制器的子类。

步骤2:重写方法popToRootViewControllerAnimated并编写如下代码 // 覆盖超类方法 popToRootViewControllerAnimated。

-(NSArray*)popToRootViewControllerAnimated:(BOOL)animated
{
    // Only for iOS8 and above
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1)
    {
        // Array which will contaimn all poped view controllers object.
        NSMutableArray *popedControllersArray = [[NSMutableArray alloc] init];

        // Tmp created controllers object
        NSArray *controllers;

        // Hold first view cotnrollers.
        UIViewController *firstViewController = [self.viewControllers objectAtIndex:1];

        // Pop to first view controllers with no animation.
        controllers = [super popToViewController:firstViewController animated:NO];

        // Add poped view cotnrollers objects to the array.
        [popedControllersArray addObjectsFromArray:controllers];

        // Pop to root view controller with animation
        [super popViewControllerAnimated:YES];

        // Add first view controller object as it is poped by above line.
        [popedControllersArray addObject:firstViewController];

        // return poped view controllers object.
        return popedControllersArray;
    }
    else
    {
        // Called super view popToRootViewControllerAnimated method and return popped
        // view controllers array.
        return [super popToRootViewControllerAnimated:animated];
    }
}


请免费填写任何意见并提出任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支持多界面,但主屏幕只有单一界面,在 iOS8 + iPhone 中不工作 的相关文章

  • 为什么 Obj-C 属性默认所有权“分配”而不是“强”

    我正在向旧项目添加 Swift 类 一切进展顺利 直到我尝试向 Swift 类添加属性 生成的标头无法编译 我认为问题是 在生成的代码中 Swift 省略了strong所有权并仅将其声明为nonatomic 这通常应该足够了 因为 prop
  • CloudKit 通过 cron 作业发送推送通知?

    我正在创建一个大学餐饮菜单应用程序 在其中我需要根据每日菜单发送推送通知 最初 我计划通过 Heroku 将用户数据存储在数据库中 并使用 cron 作业将数据库中的数据与每日菜单进行比较 并向用户发送适当的通知 然而 在 Cloudkit
  • 在 UITableView 上显示徽章信息

    我希望在 UITableView 行上显示徽章信息 如下图所示 我尝试使用下面的代码 UILabel labelCell1 UILabel alloc init labelCell1 frame CGRectMake 160 9f 10 0
  • 如何在iPhone应用程序中的类结构中实现主键和外键表数据[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何连接sqlite数据库中的两个表数据 if sqlite3 open dbPath UTF8String database SQL
  • 允许的 APNS 持续连接数量是多少?

    我正在尝试编写服务器端代码来为我的应用程序发送推送通知 根据 Apple 的建议 我计划保留连接并根据需要发送推送通知 Apple 还允许打开和保留多个并行连接以发送推送通知 您可以与同一网关或多个网关实例建立多个并行连接 为此 我想维护一
  • iPhone 相当于 Application.DoEvents();

    iPHone 我们使用 MonoTouch 但 Obj C 答案还可以 我的单例域对象需要一段时间才能获取所有数据 因此它在线程中内部运行部分获取数据 我需要通知 UI 域已完成 目前我正在这样做 有没有更好的办法 在 WinForms 中
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • Objective-C:在哪里定义宏以便随处可用?

    我有一个 iOS 应用程序 它在许多视图控制器中使用相同的字符串 数字等 所以我认为最好在一个文件中定义这些常量并在所有视图控制器实现中使用它 优点是更改一个数字 我只需要做一次 而不是在所有视图控制器中都使用该数字 实际上 我的 h 文件
  • iPhone 中的 NSNotification

    我正在将 NSSNotifcation 发送到 iPhone 应用程序中的另一个视图控制器 但它的观察者方法收到两次通知 这可能如何 任何人都可以指导我 我已经使用此代码来发布通知 NSNotificationCenter defaultC
  • iphone - 自动释放,没有池 - 只是泄漏

    我的主代码中有这一行 self performSelectorInBackground selector animateMe withObject nil 这是 animateMe void animateMe UIView animate
  • 最小的 iOS 蓝牙管理器示例

    我一直在构建一个最小的示例 用于使用 iOS 5 0 中的 BluetoothManager 私有框架来检测附近的蓝牙设备 使用此问题中找到的答案 寻找触手可及的通用蓝牙设备 https stackoverflow com question
  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • 如何禁用 UITableView 中某些行的删除操作?

    我知道使用setEditing 启用UITableView的编辑模式 但我更喜欢禁用某些特定行的操作 启用其他行 是否可以 Thanks interdev 实施the tableView canEditRowAtIndexPath meth
  • 如何知道用户何时更改设置包

    我让用户在 iPhone 的设置区域中更改他们的设置 在下一次网络同步期间 我想将用户更改发送到服务器 但前提是做出改变 但是我如何知道用户何时在设置区域中进行了更改 如果可以的话 我想避免选择总是发送信息 无论是否更改 或者首先从服务器获
  • 如何将 NSDecimal 值转换为 NSInteger 值?

    我遇到一种情况 我得到一个 NSDecimal 并且我需要一个 NSInteger 我确实知道这是一个非常小的值 这是绝对肯定的 它不会大于 100 所以将它转换为 NSInteger 就完全没问题 不会发生溢出 这怎么可能做到呢 NSDe
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 如何获取CATransition/Animation的结束事件?

    我的代码如下所示 CATransition transition CATransition animation transition duration duration 我希望得到CATransition Animation的结束事件 是否
  • 以编程方式使用 Stack Overflow 进行身份验证

    我想在我的 iPhone 应用程序中添加赞成和反对投票 MyStacks http itunes apple com gb app mystacks id360030953 mt 8 为此 我需要能够使用 Stack Overflow 对用
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7

随机推荐