2
我有三個視圖控制器,它們互相推送到導航控制器上。查找哪個viewController爲父
ViewController1可推動VC2或VC3 VC2可以推動VC3
這意味着,無論是VC3由VC1或VC2打開。 VC1是UITableViewController的子類,VC2是UIViewController的子類。
現在,在VC3中,我想知道VC1或VC2是否創建了VC3。我怎樣才能做到這一點?
我有三個視圖控制器,它們互相推送到導航控制器上。查找哪個viewController爲父
ViewController1可推動VC2或VC3 VC2可以推動VC3
這意味着,無論是VC3由VC1或VC2打開。 VC1是UITableViewController的子類,VC2是UIViewController的子類。
現在,在VC3中,我想知道VC1或VC2是否創建了VC3。我怎樣才能做到這一點?
您可以檢查;
[vc3 parentViewController];
返回UIViewController
。
根據你需要什麼,你可以做
if ([[vc3 parentViewController] isKindOfClass:[VC1 class]]) {
//has been pushed by VC1
}
else if ([[vc3 parentViewController] isKindOfClass:[VC2 class]]) {
//has been pushed by VC2
}
嗯,我在VC3檢查,所以我想我會寫:'[自parentViewController]',是否正確?這個類不是UIViewController,但它是一個UINavigationController。至少這就是返回的結果:'[[self parentViewController] class]' – Linus 2011-05-30 13:28:01
是的,你可以調用'[self parentViewController]'。這有點棘手,但你應該訪問UINavigationController中的UIViewControllers數組。這裏有一個解決方案: 'NSArray * array = [[self navigationController] viewControllers]; NSLog(@「parentViewController:%@」,[[array objectAtIndex:([array count] -2)] class]);' – Saphrosit 2011-05-30 13:44:05
謝謝。很棒! – Linus 2011-05-30 14:46:13