首页 > 解决方案 > 如何从递归视图控制器返回根视图控制器(四)

问题描述

class FourthViewController : UIViewController {

    @IBOutlet weak var previousLabel: UILabel!
    @IBOutlet weak var backButton: UIButton!

    var delegate: FourthToFirst?
    var label = ""

    // MARK: - Lifecycle method
    override func viewDidLoad() {
        super.viewDidLoad()
        previousLabel.text = label
        let fourthViewController = storyboard?.instantiateViewController(withIdentifier: "FourthViewController") as? FourthViewController
        navigationController?.pushViewController(fourthViewController!, animated: true)
    }

    // MARK: - IBAction
    @IBAction func backToFirst(_ sender: Any) {
        navigationController?.popToRootViewController(animated: true)
    }

实际上我在第四视图控制器中它正在递归地进行(即一次又一次地推动第四视图控制器,不间断)

如果我按下控制器中的后退按钮,我必须返回(即 firstviewcontroller)

问题是:

在我的代码中它正在运行(即不停)

我无法按返回按钮返回(即 firstviewcontroller)

标签: ios

解决方案


navigationController?.popViewController(animated: true)而不是navigationController?.popToRootViewController(animated: true)可能是你需要的伴侣。(基于您刚刚编辑的内容)


推荐阅读