gpt4 book ai didi

ios - 由于关闭而导致对开始/结束外观转换的不平衡调用 - 不涉及任何转换或转场

转载 作者:行者123 更新时间:2023-11-30 12:31:15 25 4
gpt4 key购买 nike

我有三个 View Controller 。

前两个 View Controller 使用导航 Controller 。

第三个 View Controller 以模态方式显示。

第一个 View Controller 在 Storyboard中使用segue显示第二个 View Controller ,因此这里不涉及任何代码。

当第二个 View Controller 以模态方式显示第三个 View Controller 并将其自身弹出到第一个 View Controller 时,使用 popToRootViewController ,我收到错误消息:

对 SecondViewController 的开始/结束外观转换的调用不平衡

第二个 View Controller 呈现第三个 View Controller 并弹出到第一个 View Controller 的代码如下:

        if let thirdViewController = self.storyboard?.instantiateViewController(withIdentifier: "ThirdViewControllerID") {
let navigationController = UINavigationController(rootViewController: thirdViewController)
self.navigationController?.present(navigationController, animated: true, completion: {
_ = self.navigationController?.popToRootViewController(animated: false)
})

在第二个 View Controller 中导致问题的代码行是:

_ = self.navigationController?.popToRootViewController(animated: false)

The source code showing the error is available here.

最佳答案

解决方案是在第二个 View Controller 中在 navigationcontroller.present 方法的完成 block 之外调用 popToRootViewController,如下所示:

    if let thirdViewController = self.storyboard?.instantiateViewController(withIdentifier: "ThirdViewControllerID") {
let navigationController = UINavigationController(rootViewController: thirdViewController)
self.navigationController?.present(navigationController, animated: true, completion: nil)
_ = self.navigationController?.popToRootViewController(animated: false)
}

请注意,popToRootViewController 不再是 UINavigationViewController.present(completion:) 闭包的一部分,而是位于外部,这解决了问题。

The source code with the fix is available here.

关于ios - 由于关闭而导致对开始/结束外观转换的不平衡调用 - 不涉及任何转换或转场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528906/

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