gpt4 book ai didi

ios - Xcode-7.0.1 : Presenting view controllers on detached view controllers is discouraged

转载 作者:行者123 更新时间:2023-11-28 21:38:07 27 4
gpt4 key购买 nike

我在 Storyboard中有一个 UITabBarController,它有一个导航 Controller 作为选项卡栏项目之一。当我尝试在我的导航 Controller 的 Root View Controller 上执行 [self presentViewController:myVC animated:YES completion:NULL] 时,应用程序停止响应并且我在控制台上收到以下错误/警告

2015-10-16 18:21:40.175 My_App[1224:488753] Presenting view controllers on detached view controllers is discouraged <MyViewController: 0x16512b00>.

只有当应用程序是使用 Xcode-7.0.1 构建并在 iOS-9 上运行时,我才会遇到此问题。它在使用 Xcode-7.0.1 的 iOS-8 上完美运行,甚至在使用 Xcode 6.4 构建时在 iOS-9 上运行。

编辑:

这是我的 View Controller 层次结构,就在我从 myRootViewController 显示 myVC 之前。

(lldb) po [UIViewController _printHierarchy]
<LibraryTabBarController 0x7f91935e9660>, state: appeared, view: <UILayoutContainerView 0x7f9195841420>
| <UINavigationController 0x7fe46b863200>, state: appeared, view: <UILayoutContainerView 0x7fe46b54c6a0>
| | <MyRootViewController 0x7fe46b47aa40>, state: appeared, view: <UIView 0x7fe46b66f8a0>
| <MyOtherViewController 0x7f919580fd80>, state: disappeared, view: (view not loaded)

最佳答案

错误消息表明您正在呈现的 View Controller (还)不在 View Controller 层次结构中。也许您已经实例化了 self 引用的 View Controller ,但尚未将其添加到选项卡栏的 View Controller 集合中。也许您正在尝试在 prepareForSegue 中执行此操作。也许您为 subview Controller 执行了 addSubview,但忽略了执行必要的 View Controller 包含调用(例如 addChildViewController)。这可能是很多问题。在我们担心它如何呈现其他 View Controller 之前,我建议您稍微描述一下 self 本身是如何呈现的。

如果您认为 self 已经在 View Controller 层次结构中,我建议我们确认一下。从 Xcode 运行应用程序,在您点击显示 VC 的这行代码之前,按下调试器的暂停按钮:

enter image description here

(lldb) 提示符下,输入:

po [UIViewController _printHierarchy]

或者,如果您在 Swift 框架中暂停,您可以输入:

expr -l objc++ -O -- [UIViewController _printHierarchy]

你应该看到这样的东西:

(lldb) po [UIViewController _printHierarchy]
<UITabBarController 0x7fcae1c19740>, state: appeared, view: <UILayoutContainerView 0x7fcae1c26730>
| <UINavigationController 0x7fcae3012c00>, state: appeared, view: <UILayoutContainerView 0x7fcae1d10b90>
| | <MyApp.ViewController 0x7fcae1c19cd0>, state: appeared, view: <UIView 0x7fcae1c2c470>
| <SecondViewController 0x7fcae1e1b860>, state: disappeared, view: (view not loaded)

确认您的问题中引用的任何 View Controller self 都出现在该 View Controller 层次结构中。如果是这样,请向我们展示您的 View Controller 层次结构以及self 是哪一个。

关于ios - Xcode-7.0.1 : Presenting view controllers on detached view controllers is discouraged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171566/

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