私はこのようなビューを押しています。iPhoneナビゲーションの親ビューコントローラのクラス名を取得
[[self.navigationController pushViewController:myViewController animated:YES];
にはどうすればプッシュビュー(子ビュー)から親ビューコントローラのクラス名を取得することはできますか?親ビューコントローラのAny Idea?
私はこのようなビューを押しています。iPhoneナビゲーションの親ビューコントローラのクラス名を取得
[[self.navigationController pushViewController:myViewController animated:YES];
にはどうすればプッシュビュー(子ビュー)から親ビューコントローラのクラス名を取得することはできますか?親ビューコントローラのAny Idea?
これはそれを行う必要があります。
NSUInteger numberOfViewControllersOnStack = [self.navigationController.viewControllers count];
UIViewController *parentViewController = self.navigationController.viewControllers[numberOfViewControllersOnStack - 2];
Class parentVCClass = [parentViewController class];
NSString *className = NSStringFromClass(parentVCClass);
取得クラス:
id class = [self.navigationController.viewControllers[0] class];
、その名前:
NSString *className = NSStringFromClass(class);
これは、ナビゲーションコントローラのクラスになるだろうルートビューコントローラ(必ずしもトップビューコントローラの直接の親ではない)(ナビゲーションstac k)。 –
ナビゲーションスタックに複数のビューコントローラがあることを確認しても問題ありません。あなたがroot view controllerでそれを使用しようとすると、例外が発生します。 – Mert
@Mert:それは本当です。私は元のポスターがナビゲーションスタックに少なくとも2つのコントローラがあることを主張できると仮定しました。 –