我怎样才能解雇第二个在第一个 vc 上模态呈现的第一个 vc
Posted
技术标签:
【中文标题】我怎样才能解雇第二个在第一个 vc 上模态呈现的第一个 vc【英文标题】:how can I dismiss first vc that second has presented modally on the first vc 【发布时间】:2018-09-09 08:25:07 【问题描述】:我有一个名为 "firstVC" 的视图控制器和另一个名为 "secondVC" 的视图控制器。当用户按下 secondVC 上的按钮时,secondVC 将在第一个 vc 上模态显示我想关闭 firstVC 和 secondVC 我在这里调用该方法但它确实执行但什么也不会发生 在 secondVC 中会发生这种情况
firstVC.dismiss(animated: true, completion: nil)
如果您建议我使用委托,请告诉我如何完全使用它?不知道第一个VC应该放什么,第二个VC应该放什么
还有一件事
在其他一些情况下,我需要在 firstVC 中执行 json,当 json 完成后,两个视图控制器(firstVC 和 secondVC)都将被关闭,我该怎么做呢?
【问题讨论】:
如何介绍firstVC? firstVC 是根视图控制器吗? 所有的 vc 都在故事板中 你试过firstVC.presentingViewController?.dismiss(animated: true, completion: nil)
吗?
@OOPer 这对我不起作用
请解释一下不起作用。发生了什么?
【参考方案1】:
这是使用委托的解决方案:
protocol DismissDelegate
func dismissVC()
class FirstViewController: UIViewController, DismissDelegate
func showSecondVC()
let secondVC = SecondViewController()
secondVC.delegate = self
func dismissVC()
self.dismiss(animated: true, completion: nil)
class SecondViewController: UIViewController
var delegate: DismissDelegate?
@IBAction func buttonAction(sender: UIButton)
self.dismiss(animated: true, completion: nil)
delegate?.dismissVC()
【讨论】:
以上是关于我怎样才能解雇第二个在第一个 vc 上模态呈现的第一个 vc的主要内容,如果未能解决你的问题,请参考以下文章
WIX React本机导航:堆栈中的第二个屏幕显示在第一个屏幕上