【发布时间】:2021-11-05 22:24:57
【问题描述】:
我试图在关闭 ConfirmUser 后显示 ChatController,但收到以下警告:
尝试在已呈现 ConfirmUser 的 RoomViewController(来自 RoomViewController)上呈现 ChatController。
这是我的代码:
confirmPopup.dismiss(animated: false, completion: { [self] in
dialogIsShowing = false
let story = UIStoryboard(name: "Chat", bundle: nil)
let chat = story.instantiateViewController(withIdentifier: "chat_controller") as? ChatController
chat?.roomCreator = byUser
controller!.present(chat!, animated: true, completion: nil)
})
【问题讨论】:
-
如果
animated是true,它有效吗?我想知道,有时当动画在其他方法中设置为真/假时,行为可能会有所不同...... -
你可能混淆了你的视图控制器:
controller是什么?你打电话给dismiss换取confirmPopup,然后打电话给controller.present——confirmPopup 有什么东西吗?它是否应该将controller呈现的视图控制器视为奇怪的副作用? -
@Larme
animate = true不工作 -
-
如果 VC A 提供 VC B,而 VC B 提供 VC C (A -> B -> C) 并且您调用 B.dismiss,它会解雇 C(仅)。如果您调用 A.dismiss,它会关闭 B 和 C,同时为 C 设置动画。如果您调用 C.dismiss,它将在内部调用 B.dismiss。
标签: ios swift xcode uiviewcontroller modal-dialog