まぁ、表題の通りなんですが。

UINavigationControllerpopToRootViewControllerAnimated:を呼んだときに、そのとき表示していたUIViewControllerviewWillDisappearが呼ばれるのを期待していると、実際には呼ばれないので残念なのことになります。

stackoverflowにも以下のようなスレがありました。

viewWillDisappear not called when calling popToRootViewControllerAnimated

どうもiOSのバグっぽいことが書いてありますね。

対応としては、対象のUIViewControllerwillMoveToParentViewController:をオーバーライドするとそれで検知できるようです。

引数で渡ってくるUIViewControllernilの場合は、popToRootViewControllerAnimated:された時ということみたいです。