swift 推送VC,同时关闭前两个已呈现的VC

p5cysglq  于 2023-08-02  发布在  Swift
关注(0)|答案(1)|浏览(111)

我有VC 1在导航控制器中,我们从VC 1中得到VC 2,然后从VC 2中得到VC 3。当我点击VC 3中的按钮时,我需要关闭VC 2和VC 3,然后将VC 4推到VC 1
因此,该VC 1(模态地呈现)-> VC 2(模态地呈现)-> VC 3到该VC 1(推送到导航控制器)-> VC 4
我什么都试过了,但都不管用

wvt8vs2t

wvt8vs2t1#

第一种方法是当vc 1-> vc 2时关闭vc 2,从vc 1进入vc 3。第二种方法是按照你想要的方式进行。你想运行它吗?

extension UIViewController {
    
    func popAndPushViewController(goto: UIViewController) {
        if var vcArray = self.navigationController?.viewControllers {
            vcArray.removeLast()
            vcArray.append(goto)
            self.navigationController?.setViewControllers(vcArray, animated: true)
        }
    }

    func doublePopAndPushViewController(goto: UIViewController) {
        if var vcArray = self.navigationController?.viewControllers {
            vcArray.removeLast()
            vcArray.removeLast()
            vcArray.append(goto)
            self.navigationController?.setViewControllers(vcArray, animated: true)
        }
    }

}

个字符

相关问题