2013-04-02 7 views

risposta

19

Questo dovrebbe farlo:

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

Non sarebbe male, se hai controllato di avere più di 1 controller di visualizzazione nello stack di navigazione. Se provi a usarlo sul controller di visualizzazione radice, otterrai un'eccezione. – Mert

+2

@Mert: è vero. Ho ipotizzato che il poster originale possa affermare che ci sono almeno 2 controller nello stack di navigazione. –

4

Get del controller della vista genitore:

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

e il suo nome:

NSString *className = NSStringFromClass(class); 
+1

Questo sarebbe ottenere la classe della navigazione controllore di controller di visualizzazione radice, non necessariamente il genitore immediato del controller di visualizzazione superiore (a seconda della navigazione stac K). –