2
有人能想到为什么这行代码为 [self.view insertSubview:dataInputController.view atIndex:0]; 会生成两个viewDidLoad消息到dataInputViewController,然后是一个viewWillDisappear和一个dealloc?two viewDidLoad messages when only one expected
我预计没有viewDidDisappear或dealloc的单个viewDidLoad。
我查看了dataInputController的_parentViewController,并且调用了两次viewDidLoad。我确实注意到调用堆栈并不是我所期望的。第一次调用viewDidLoad时,堆栈看起来像这样 - main,UIApplicationMain,UINibInstantiateWithOwner,switchViewController,UIViewController,UINibInstantiateWithOwner,dataInputViewController。第二次viewDidLoad被称为堆栈看起来像这样 - main,UIApplicationMain,UINibInstantiateWithOwner,switchViewController,UIViewController,dataInputViewController。没有第二个UINib在堆栈中! – user990380
在插入之前检查'[dataInputController.view superview]'。 –