【问题标题】:Modal View Controller State Restoration SceneDelegate模态视图控制器状态恢复 SceneDelegate
【发布时间】:2020-04-10 19:52:08
【问题描述】:

我正在尝试从SceneDelegate 中恢复模态Viewcontroller

但是此代码不允许模态视图控制器显示并导致以下错误: "Unbalanced calls to begin/end appearance transitions for...".

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    if let userActivity = connectionOptions.userActivities.first ?? session.stateRestorationActivity {
        // Restoring Data and Modal VC:

        let storyboard = UIStoryboard(name: "Main", bundle: .main)
        let splitController =  storyboard.instantiateViewController(withIdentifier: "splitVC") 
        if let navigationController = window?.rootViewController as? UINavigationController {
             splitController.modalPresentationStyle = .fullScreen
             self.window?.makeKeyAndVisible()
             navigationController.present(splitController, animated: false, completion: nil)
        }
    } else {
        print("No User Activity")
        // Loads Initial VC
    }

}

关于如何解决此问题并从SceneDelegate 中呈现模态Viewcontroller 的任何想法

【问题讨论】:

  • 你不需要解开视图控制器。
  • 嗨@dgee4。你能解决这个问题吗?我也有类似的问题。

标签: ios swift modalviewcontroller uiscenedelegate


【解决方案1】:

当您尝试在呈现它的 UIViewController 完成动画之前加载新的 UIViewController 时,会发生这种情况。您应该简单地在主线程上异步调用演示文稿:

DispatchQueue.main.async { navigationController.present(splitController, animated: false, completion: nil) }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多