gpt4 book ai didi

ios - UIViewController 连续关闭调用

转载 作者:行者123 更新时间:2023-11-29 01:01:16 25 4
gpt4 key购买 nike

我有三个 View Controller

  • ViewControllerA
  • ViewControllerB
  • ViewControllerC

这是我要解决的场景

  • ViewControllerA 将 ViewControllerB 推送到导航层次结构上
  • ViewControllerB 将 ViewControllerC 呈现为模态,并关闭代表

  • 按下 ViewControllerC 关闭按钮,发送关闭委托(delegate)并关闭 ViewControllerC

  • ViewControllerB 收到关闭委托(delegate),并尝试关闭本身所以显示 ViewControllerA

出于某种原因,ViewControllerB 没有被关闭。如果我按下 ViewControllerB 中的取消按钮,它就可以被关闭。

为什么不能连续dismiss?

ViewControllerC

@IBAction func closeClick(sender: AnyObject) {
self.closeDelegate?.didClose()
self.dismissViewControllerAnimated(true, completion: nil)
}

View Controller B

func didClose() {
print("did close") // gets called
self.dismissViewControllerAnimated(false, completion: nil) // no dismiss
//self.navigationController?.popViewControllerAnimated(false)
}

@IBAction func cancelClick(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil) // works
}

最佳答案

您说您正在将 View Controller B 推送到您的导航 Controller 上。关闭 View Controller B 是不可能的,因为包含它的导航 Controller 是 Root View Controller 。

您将需要pop回到导航 Controller 的 Root View Controller ,因此 View Controller A上的委托(delegate)方法实现应该执行pop而不是dismiss。

关于ios - UIViewController 连续关闭调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36955357/

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