我该如何关闭第二个已在第一个vc上模态显示的第一个vc

时间:2018-09-09 08:25:08

标签: ios swift uiviewcontroller dismissviewcontroller

我有一个名为“ firstVC”的视图控制器,另一个名为“ secondVC”的视图控制器。当用户按下secondVC上的按钮时,secondVC将以模态形式显示在第一个vc上,我想关闭firstVC和secondVC 我在这里调用该方法,但是它确实执行,但是什么也不会发生 在secondVC中,这将会发生

firstVC.dismiss(animated: true, completion: nil)

如果您建议我使用代理,请告诉我如何完全使用它?我不知道应该在firstVC中放置什么,或者在第二VC中放置什么

还有一件事情

在其他情况下,我需要在firstVC中执行json,并且当json完成时,两个视图控制器(firstVC和secondVC)都将被关闭,我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

这是使用委托的解决方案:

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()
    }
}