检查前一个UIViewController的nibName

时间:2011-06-02 16:24:18

标签: iphone uiviewcontroller uinavigationcontroller

我有一个基于导航的应用程序。在某个屏幕中,我需要检查用户来自哪个屏幕。我想过像

这样的东西
NSArray *viewControllers = [self.navigationController viewControllers];
int viewControllersSize = [viewControllers count];
if ([[viewControllers objectAtIndex:viewControllersSize-2] nibName] == @"Name") {
    ...
}

但问题是如果用户点击某个屏幕的“后退”,视图控制器将从上面定义的数组中删除。

我目前的解决方案是拥有一个全局变量,告诉我用户是否来自特定的屏幕,但我想有一个更优雅的解决方案,对吧?

1 个答案:

答案 0 :(得分:0)

不确定你的意思:

  但问题是,如果是用户   从某个屏幕点击“返回”,   视图控制器将被删除   来自上面定义的数组。

并非所有视图控制器都使用相同的导航控制器?

如果所有UIViewControllers都使用相同的UINavigationController,则可以使用UIViewController parentViewController来实现此目的。如果采用相反的方式,保持对您来自的视图控制器的引用,或者只是[viewController类](对于字符串)可以做到这一点。