我在導航視圖heirarchy的上下文中切換視圖,我希望能夠在切換時確定先前的視圖是在新視圖下推送的內容。如何確定UINavigationControllers中以前的visibleViewController?
我想這在UINavigationControllerDelegate:
(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
NSLog(@"Switching from %@ to %@",
NSStringFromClass([[navigationController visibleViewController] class]),
NSStringFromClass([viewController class])
);
}
我得到這個:
2009-08-05 20:05:21.274應用程序名稱[85913:20B]從 開關ManagementScreen至ManagementScreen
不幸的是,在調用「will」之前,它已經在UINavigat的狀態中被換出ionController,使得傳入的viewController始終與UINavigationController上的visibleViewController相同(也是topViewController屬性,這裏沒有演示,但我用相同的代碼嘗試過)。
我想避免擴展導航視圖控制器,老實說,雖然我可以很容易地把一個屬性委託 - 但我想知道如果這種行爲是可能的在現有的框架(似乎應該被調用之前發生在以後發生的地方,但似乎導航控制器的狀態在任一之前被修改)。
謝謝!
僅供參考,使用NSStringFromClass()更簡單; – 2009-08-06 00:33:18