用户可以通过不同的路径访问我的应用中的特定视图控制器。
我想知道用户到达当前视图控制器的确切路径。
任何建议都将受到高度赞赏。
答案 0 :(得分:2)
我的一个项目中有类似的问题,我创建了一个单独的类,它维护着一堆ViewControllers。每个ViewController都负责从堆栈中推送和弹出自己。因此,每当我们想要用户跟随的流时,我们就会查询堆栈。
它对我们来说非常好。
答案 1 :(得分:2)
你可以通过比较它来检查你的控制器,把你想要的类而不是“XYZViewController”
for (UIViewController * aController in self.navigationController.viewControllers)
{
if (aController isKindOfClass:[XYZViewController class])
{
//You can do your work here
}
}
答案 2 :(得分:1)
您可以通过这种方式使用导航堆栈,以便在到达某个View控制器之前了解哪个viewController。
以下是代码:
for (UIViewController *vc in self.navigationController.viewControllers) {
NSLog(@"vc desc : %@", vc.description);
}
但是如果你想显示一个标签,如果用户来自某个VC而不是从其他ViewController进入VC时显示标签,那么在ViewController中使用一个布尔值,你需要在其中显示标签,然后将布尔值设置为YES,同时从前一个VC推送并检查该布尔值以显示标签。
答案 3 :(得分:0)
在当前视图控制器的viewDidAppear()
,viewWillAppear()
或viewDidLoad()
方法中,使用以下代码。我使用了它的viewDidLoad()方法。
for (int i=0;i<[self.navigationController.viewControllers count];i++)
{
NSLog(@"%d>>>>>>>>>%@",[self.navigationController.viewControllers objectAtIndex:i]);
}