【问题标题】:tabBarController presentModalViewController is not displayed in foreground in iOS5tabBarController presentModalViewController 在 iOS5 中不显示在前台
【发布时间】:2013-01-29 14:50:52
【问题描述】:

我必须将一个相当旧的 iOS 应用程序“转换”为当前的 iOS6 SDK。不幸的是,我几乎没有 iOS 开发经验。简短的问题描述。

在我使应用程序在最新的 iOS6 SDK 上编译后,方向自动转向不再适用于 iOS5。经过一番搜索,我发现我必须实现supportedInterfaceOrientations 函数。为了让它最终打开方向更改,我必须在didFinishLaunchingWithOptions 函数中将[window addSubView:tabBarController.view] 更改为window.rootViewController = tabBarController

通过这些更改,方向转向再次在 iOS5/6 上运行,但显示带有 [tabBarController presentModalViewController:loginController animated:YES] 的模式登录视图在 iOS5 上不再运行。登录视图正在显示,但登录视图的内容(子视图)显示在 tabBarController 内容的后面。但是 tabBarController 应该被登录视图完全隐藏。

看起来像是 iOS5 上的一种 z-index 问题。目前我不知道为什么它可以在 iOS6 上运行,而不再在 iOS5 上运行。

我怎样才能让我的登录视图和它的子视图再次成为最顶部的视图?

【问题讨论】:

    标签: ios objective-c ios5 ios6


    【解决方案1】:

    就我的理解而言,模态视图控制器通常总是显示在顶部,所以很奇怪,这不是您的应用程序中的行为..

    也许你可以尝试修改视图/层的z-index:

    someView.layer.zPosition = 1;
    

    或者您可以尝试不从 tabBarController 而是从另一个控制器呈现 loginController。

    【讨论】:

    • 发现另一个 SO 问题可能解释了为什么模态视图控制器没有按应有的方式显示。 stackoverflow.com/a/10151385/83224 这或多或少正是我改变的。使 tabBarController 成为 rootViewController。如链接答案中所述,tabBarController 可能无法显示登录控制器表单本身。我想我会尝试从另一个控制器显示它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多