我怎样才能找到推送VC的内部,VC调用了这个函数(谁叫我到达):
调用控制器的.m中的:
[self.navigationController pushViewController:calledViewController animated:YES];
在被叫控制器的.m中:
NSString* class = [self.navigationController whoCalledMe];
答案 0 :(得分:4)
self.navigationController.viewControllers
是一个视图控制器数组,被推送到UINavigationController
的堆栈
所以,最后一个是你的“self
”(calledViewController
)。
最后一个是推动(whoCalledMe
)的那个。
所以,
NSString *className = NSStringFromClass([self.navigationController.viewControllers
[self.navigationController.viewControllers.count -2] class]);
还要记得检查阵列中是否有至少2个视图控制器。
答案 1 :(得分:2)
试试这样: -
if (self.navigationController.viewControllers.count > 1){
UIViewController* vc = [self.navigationController.viewControllers objectAtIndex:
self.navigationController.viewControllers.count-2]);
NSString *className = NSStringFromClass([vc class])}
}