获取iPhone导航推送中父视图控制器的类名

获取iPhone导航推送中父视图控制器的类名,iphone,ios,uinavigationcontroller,push,Iphone,Ios,Uinavigationcontroller,Push,我在推广这样的观点 [[self.navigationController-pushViewController:myViewController-animated:YES]; 如何从推式视图(子视图)中获取父视图控制器的类名?有什么想法吗?获取父视图控制器的类: id class = [self.navigationController.viewControllers[0] class]; 其名称: NSString *className = NSStringFromClass(class)

我在推广这样的观点

[[self.navigationController-pushViewController:myViewController-animated:YES];


如何从推式视图(子视图)中获取父视图控制器的类名?
有什么想法吗?

获取父视图控制器的类:

id class = [self.navigationController.viewControllers[0] class];
其名称:

NSString *className = NSStringFromClass(class);
这应该做到:

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

这将获得导航控制器的根视图控制器的类,而不一定是俯视图控制器的直接父级(取决于导航堆栈)。如果您检查了导航堆栈上有多个视图控制器,那就不错了。如果您尝试在根视图控制器上使用它,您将得到一个异常。@Mert:没错。我假设原始海报可以断言导航堆栈上至少有两个控制器。