私は、ナビゲーションビュー階層のコンテキストでビューを切り替えるので、切り替え時に、新しいビューの下にプッシュされていた以前のビューを判別できるようにしたい。UINavigationControllersの以前のvisibleViewControllerをどのように決定するのですか?
私はUINavigationControllerDelegateでこれをしようとしている:
(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
NSLog(@"Switching from %@ to %@",
NSStringFromClass([[navigationController visibleViewController] class]),
NSStringFromClass([viewController class])
);
}
私はこの取得:
2009-08-05 20:05:21.274アプリケーション名[85913:20B] からの切り替えをManagementScreen to ManagementScreen
残念ながら、「will」が呼び出される前に残念ながら、UINavigatの状態で既にスワップアウトされているようですviewControllerが渡されるようなionControllerは、UINavigationControllerのvisibleViewControllerと同じです(また、ここでは説明していませんが、同じコードで試しました)。
私はナビゲーションビューコントローラを拡張しないようにしたいと思います。正直なところ、デリゲートにプロパティを簡単に入れることはできますが、既存のフレームワーク内でこの動作が可能かどうかは疑問です。後に起こったように起こるが、ナビゲーション制御装置の状態はいずれかの前に変更されているようである)。
ありがとうございます!
NSStringFromClass()を使用する方が簡単です。 –