0

私はiOS開発に比較的慣れていないので、ViewControllerのポップに問題があります。UIViewControllers戻るボタンが押されたときに、ナビゲーションスタックから2つ(またはそれ以上)をポップする必要があります。それらすべてをアニメーション化したくないので、最初にアニメーション化されていない最後の1つを除いてすべてをポップし、次にアニメーション化された最後の1つをポップしますが、最後の1つ-viewWillDisappearだけが呼び出されるわけではありません。これが私のコードです(これらはUIViewController他のすべてが拡張されたスーパーから呼び出されています):

//popping all but last one - viewWillDisappear getting called for these
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:j] animated:NO];
//popping last one - viewWillDisappear not getting called for this one
[self.navigationController popViewControllerAnimated:YES];
//also tried this but with same result:
//[((UIViewController*)[self.navigationController.viewControllers objectAtIndex:j]).navigationController popViewControllerAnimated:YES];

誰かが私がここで間違っていることを知っていますか、それとも私が必要なことを正しく達成する方法を教えてもらえますか?

4

1 に答える 1

1

新しいコントローラをロードすると、viewWillDisappearはすでに呼び出されています。このようなことを行うと、トップコントローラーのviewWillDissappearのみが呼び出されると思います。

また、アニメーション化された目的のビューにポップしないのはなぜですか?

nslogを表示すると、表示のために呼び出されている同じ量が表示されなくなる可能性があります。

あなたが見つけたものを教えてください。お役に立てば幸いです。

于 2012-09-05T02:44:01.390 に答える