我有一个基于导航的应用程序。在某个屏幕中,我需要检查用户来自哪个屏幕。我想过像
这样的东西NSArray *viewControllers = [self.navigationController viewControllers];
int viewControllersSize = [viewControllers count];
if ([[viewControllers objectAtIndex:viewControllersSize-2] nibName] == @"Name") {
...
}
但问题是如果用户点击某个屏幕的“后退”,视图控制器将从上面定义的数组中删除。
我目前的解决方案是拥有一个全局变量,告诉我用户是否来自特定的屏幕,但我想有一个更优雅的解决方案,对吧?
答案 0 :(得分:0)
不确定你的意思:
但问题是,如果是用户 从某个屏幕点击“返回”, 视图控制器将被删除 来自上面定义的数组。
并非所有视图控制器都使用相同的导航控制器?
如果所有UIViewControllers都使用相同的UINavigationController,则可以使用UIViewController parentViewController来实现此目的。如果采用相反的方式,保持对您来自的视图控制器的引用,或者只是[viewController类](对于字符串)可以做到这一点。