ios - 我怎样才能驳回第一个 vc,第二个 vc 在第一个 vc 上以模态方式呈现

标签 ios swift uiviewcontroller dismissviewcontroller

我有一个名为“firstVC”的 View Controller 和另一个名为“secondVC”的 View Controller 。第二个 VC 将以模态方式呈现在第一个 VC 上,当用户按下第二个 VC 上的按钮时,我想关闭firstVC和第二个VC 我在这里调用该方法 但它确实执行 但什么也不会发生 在第二个VC中这会发生

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

如果您建议我使用委托(delegate),请告诉我如何才能完全使用它?我不知道应该在第一个 VC 中放入什么,或者在第二个 VC 中放入什么

还有一件事

在其他一些情况下,我需要在第一个 VC 中执行 json,当 json 完成时,两个 View Controller (firstVC 和 secondaryVC)都将被关闭,我怎样才能做到这一点?

最佳答案

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

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

关于ios - 我怎样才能驳回第一个 vc,第二个 vc 在第一个 vc 上以模态方式呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242662/

相关文章:

ios - TinyMCE 图片上传不适用于 iOS (Safari)

ios - Xcode 9.1无法启动Iphone模拟器

ios - 无法访问 Pod 中存在的 ViewController

ios - 从 RootPageViewController 调用按钮导致错误

swift - 如何使用来自像 turbo 360 这样的在线服务器的 JSON 文件?

ios - 使用 Facebook Swift SDK 时使用未解析的标识符 'AccessToken'

ios - UIViewController 的循环展示

ios - 在单元格 TableView 中设置最大字符数

ios - 为什么导入 ViewController 会导致 Xcode 无法找到另一个 ViewController?

ios - 使用 -> present(viewControllerToPresent : UIViewController, animated : true, completion: nil) 调用后 rootViewController 未加载