我有以下课程:
class HomeViewController: UIViewController {
override func viewdidload() {
super.viewdidload()
callOtherVC()
}
func callOtherVC() {
let viewController = StepsViewController()
let rootViewController = UINavigationController(rootViewController: viewController)
self.presentViewController(rootViewController, animated: true, completion: nil)
}
}
StepsViewController只是另一个viewcontroller。在StepsViewController中,我尝试关闭当前的StepsViewController并显示其他viewcontroller。以下是代码。
class StepsViewController: UIViewController {
override func viewdidload() {
super.viewdidload()
callSecondOtherVC()
}
func callSecondOtherVC() {
let vc = ViewController()
self.addChildViewController(vc)
self.parentViewController!.dismissViewControllerAnimated(true, completion: nil)
vc.callOtherVC()
}
}
我初始化ViewController()
因为我需要从ViewController调用相同的函数callOtherVC
。基本上ViewController中的模型会发生变化,但我实际上是从callOtherVC
函数调用相同的UINavigationController。
每当我这样做时,我都会收到如下错误:\
警告:尝试显示(UINavigationController:0x7d991600) (HomeViewController:0x7a6e00a0)其视图不在窗口中 层次!
UINavigationController
来自callSecondOtherVC
,HomeViewController
就是这样。
我该如何订购风险投资?如果有人能够更多地解释视图层次结构,我将非常感激。
答案 0 :(得分:0)
我认为你需要做的是从viewDidAppear调用你的方法,而不是viewDidLoad。原因是视图在viewDidLoad时不在视图层次结构中。