我试图以模态方式呈现视图控制器,并获得着名的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