2011-10-28 9 views
2

誰でもこのコード行を考えることができます [self.view insertSubview:dataInputController.view atIndex:0]; は、2つのviewDidLoadメッセージをdataInputViewControllerに生成し、その後に1つのviewWillDisapearと1つのdeallocを生成します。2つのviewDidLoadメッセージが1つだけ期待されるとき

viewDidDisappearまたはdeallocのないviewDidLoadが1つ必要です。

答えて

0

dataInputController.viewには既にスーパービューがありますか?それはすべての呼び出しを説明するでしょう。

+0

私はdataInputControllerの_parentViewControllerを見ましたが、viewDidLoadが呼び出されたときとないときはどちらもゼロです。私はコールスタックが私が期待したものではないことに気づいた。初めてviewDidLoadが呼び出されると、スタックは次のようになります。main、UIApplicationMain、UINibInstantiateWithOwner、switchViewController、UIViewController、UINibInstantiateWithOwner、dataInputViewController。 2回目のviewDidLoadはスタックと呼ばれ、main、UIApplicationMain、UINibInstantiateWithOwner、switchViewController、UIViewController、dataInputViewControllerのようになります。スタックに2番目のUINibはありません! – user990380

+0

挿入を行う直前に '[dataInputController.view superview]をチェックしてください。 –

関連する問題