0

我正在使用这种类型的过渡到UIViewcontroller

self.navigationController?.popToViewController(MainVC(), animated: false)

结果我想接收带有所有子视图的 MainVC ......但我只收到没有任何子视图的空主视图。我做错了什么?

更新: 我已经过渡到 MainVC,但它是空的,只有初始视图,没有所有子视图。是什么原因?

在此处输入图像描述

4

2 回答 2

0

你应该通过对象MainVC()

像下面

let objOfMainVC = MainVC()
self.navigationController?.popToViewController(objOfMainVC, animated: false)

如果您正在使用情节提要,那么

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyBoard.instantiateViewController(withIdentifier: "MainVC") as! MainVC // set withIdentifier to your identifier that was set in your storyboard.
self.navigationController?.pushViewController(main, animated: false)
于 2017-12-02T12:21:41.743 回答
0

您需要MainVC. 你不能只创建一个新的实例MainVC()

if let viewControllers = self.navigationController?.viewControllers {
    for vc in viewControllers {
        if let _ = vc as? MainVC {
            self.navigationController?.popToViewController(vc, animated: true)
            break
        }
    }
}

或者,如果您的 MainVC 是导航控制器的根视图控制器。

self.navigationController?.popToRootViewController(animated: true)
于 2017-12-02T12:45:21.693 回答