2013-04-02 5 views

答えて

19

これはそれを行う必要があります。

NSUInteger numberOfViewControllersOnStack = [self.navigationController.viewControllers count]; 
UIViewController *parentViewController = self.navigationController.viewControllers[numberOfViewControllersOnStack - 2]; 
Class parentVCClass = [parentViewController class]; 
NSString *className = NSStringFromClass(parentVCClass); 
+1

ナビゲーションスタックに複数のビューコントローラがあることを確認しても問題ありません。あなたがroot view controllerでそれを使用しようとすると、例外が発生します。 – Mert

+2

@Mert:それは本当です。私は元のポスターがナビゲーションスタックに少なくとも2つのコントローラがあることを主張できると仮定しました。 –

4

取得クラス:

id class = [self.navigationController.viewControllers[0] class]; 

、その名前:

NSString *className = NSStringFromClass(class); 
+1

これは、ナビゲーションコントローラのクラスになるだろうルートビューコントローラ(必ずしもトップビューコントローラの直接の親ではない)(ナビゲーションstac k)。 –

関連する問題