如何在iOS中找到当前viewcontroller之前的所有视图控制器?
用户可以通过不同的路径访问我的应用程序中的特定视图控制器。如何在iOS中找到当前viewcontroller之前的所有视图控制器?,ios,objective-c,Ios,Objective C,用户可以通过不同的路径访问我的应用程序中的特定视图控制器。我想知道用户访问当前视图控制器的确切路径。任何建议都将不胜感激。我在我的一个项目中遇到过类似问题,我创建了一个单例类,该类维护一组视图控制器视图控制器。每个ViewController负责从堆栈中推送和弹出自己。所以,每当我们想让用户遵循流时,我们就查询堆栈 这对我们来说很有效 我在我的一个项目中遇到了类似的问题,我创建了一个singleton类来维护ViewController的堆栈。每个ViewController负责从堆栈中推送和弹
我想知道用户访问当前视图控制器的确切路径。
任何建议都将不胜感激。我在我的一个项目中遇到过类似问题,我创建了一个单例类,该类维护一组视图控制器视图控制器。每个ViewController负责从堆栈中推送和弹出自己。所以,每当我们想让用户遵循流时,我们就查询堆栈
这对我们来说很有效 我在我的一个项目中遇到了类似的问题,我创建了一个singleton类来维护ViewController的堆栈。每个ViewController负责从堆栈中推送和弹出自己。所以,每当我们想让用户遵循流时,我们就查询堆栈
这对我们来说很有效 在当前视图控制器的
viewdispect()
、viewwillispect()
或viewdiload()
方法中,使用以下代码。我在viewDidLoad()方法中使用了它
for(int i=0;i在当前视图控制器的viewdidearch()
中,viewdillearch()
或viewDidLoad()
方法使用以下代码。我已将其用于我的viewDidLoad()方法
对于(int i=0;i您可以通过比较来检查控制器,将所需的类替换为“XYZViewController”
您可以通过比较来检查控制器,将所需的类替换为“XYZViewController”
您可以通过这种方式使用导航堆栈,在到达某个视图控制器之前,了解该视图控制器
代码如下:
for (UIViewController *vc in self.navigationController.viewControllers) {
NSLog(@"vc desc : %@", vc.description);
}
但是,如果要显示标签,如果用户来自某个VC,并且从其他ViewController来到VC时不显示标签,则在需要显示标签的ViewController中使用布尔值,然后将布尔值设置为“是”,同时从上一个VC推送并选中该布尔值以显示标签。您可以使用na在到达某个视图控制器之前,以这种方式进行vigation堆栈,以了解存在哪个视图控制器
代码如下:
for (UIViewController *vc in self.navigationController.viewControllers) {
NSLog(@"vc desc : %@", vc.description);
}
但是,如果要显示标签,如果用户来自某个VC,并且从其他ViewController来到VC时不显示标签,则在需要显示标签的ViewController中使用布尔值,然后将布尔值设置为“是”,同时从上一个VC推送并选中该布尔值以显示标签。您可以维护一个确认Singleton类中的viewcontroller。您可以在Singleton类中维护viewcontroller堆栈。唯一的问题是:您无法跟踪它,它只是控制台的记录器。我只需要检查用户已通过的视图,如果用户已通过层次结构中的viewcontroller,则显示标签。对于t您可以添加一个全局或本地位,用于检查用户是否通过当前viewcontroller@SaadChaudhry我完全不是这样认为的,但是我认为我现在的方法也适用于给定的情况。唯一的问题是,你必须把它写在每个视图控制器中。这里可以考虑AOP。唯一的问题是:不跟踪它,它只是控制台的记录器。我只需要检查用户已通过的视图,如果用户已通过层次结构中的viewcontroller,则显示标签。为此,您可以添加一个全局或本地位,以检查用户是否已通过当前viewcontroller@SaadChaudhry确切地说,我不知道那件事我认为我现在的方法也适用于给定的情况。唯一的问题是,你必须在每个视图控制器中写入它。可能在这里考虑AOP。我正在寻找一种通用的方法,它可以在所有的情况下使用。it@MdIbrahimHassanwhat这个解决方案有错吗?你应该接受这个。@SaadChaudhry如果我有多个相同类类型的视图控制器,这个就不太好用了。所以我想一个更一般的答案会更好,就像第一个答案本身或者topWell的第三个答案一样。我正在寻找一个可以在所有情况下使用的通用方法。你呢可以在AppDelegate中设置变量,并通过it@MdIbrahimHassan这个解决方案出了什么问题?你应该接受这个。@SaadChaudhry如果我有多个相同类类型的视图控制器,这个就不太好用了。所以我想一个更一般的答案会更好,比如第一个或第三个自上而下
for (UIViewController *vc in self.navigationController.viewControllers) {
NSLog(@"vc desc : %@", vc.description);
}