The UIViewController docs are pretty clear on when and when not to call willMove/didMove methods. Check out the “Implementing a Container View Controller” documentation.
The docs say, that if you do not override addChildViewController, you do not have to call willMoveToParentViewController: method. However you do need to call the didMoveToParentViewController: method after the transition is complete. “Likewise, it is is the responsibility of the container view controller to call the willMoveToParentViewController: method before calling the removeFromParentViewController method. The removeFromParentViewController method calls the didMoveToParentViewController: method of the child view controller.”
Also, there is an example worked out here and sample code here.
Good Luck