0

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

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

如果您建议我使用委托,请告诉我如何完全使用它?我不知道我应该在 firstVC 中放什么,或者我应该在 secondVC 中放什么

还有一件事

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

4

1 回答 1

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()
    }
}
于 2018-09-09T11:21:44.297 回答