我試圖以模態方式呈現視圖控制器,並獲得着名的Presenting view controllers on detached view controllers is discouraged
錯誤。我研究了它,並且共識解決方案似乎是從父母那裏做出的演示文稿,我嘗試過但沒有成功。我懷疑問題是因爲導航控制器是作爲一個靜態屬性從結構實例化的(爲了讓其他視圖控制器更容易彈出到根,因爲這是UX所要求的)。如何從獨立視圖控制器呈現視圖控制器?
struct SectionNavigationControllers {
static var one = SectionNavigationController()
static var two = SectionNavigationController()
static var three = SectionNavigationController()
static var four = SectionNavigationController()
}
這裏是其中所述導航控制器中的一個被創建(使用本結構):
let SectionOneRoot = MasterSearchViewController()
func addNavigationController() {
self.addChildViewController(SectionOneRoot)
SectionOneRoot.didMove(toParentViewController: self)
SectionNavigationControllers.one = SectionNavigationController(rootViewController: SectionOneRoot)
view.addSubview(SectionNavigationControllers.one.view)
}
因此,當我嘗試從MasterSearchViewController
(根視圖模態呈現視圖控制器控制器),我得到了上述錯誤。
navigationController?.present(Random200ViewController(), animated: true, completion: nil)
想法?
獲取app主窗口,然後獲取對根視圖控制器的引用;你應該可以使用它來呈現新的視圖控制器 – ekscrypto