我从sencond viewController进入第三个viewController,但是我不想回到第二个viewController,我需要直接回到我的第一个viewController,我该如何实现呢。我的英文很差,希望你可以理解我的问题,thx
答案 0 :(得分:0)
您可以使用导航方法。
[[self navigationController ] popToRootViewControllerAnimated:YES];
或者你使用这个
popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
&安培;通过你想要弹出的控制器。
答案 1 :(得分:0)
有一种方法
- (NSArray<__kindofUIViewController *> * _Nullable)popToRootViewControllerAnimated:(BOOL)animated
您需要执行类似
的操作[self.navigationController popToRootViewControllerAnimated:YES];
答案 2 :(得分:0)
使用这行代码 -
[self.navigationController popToRootViewControllerAnimated:YES];
或者使用它 -
NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];
for (UIViewController *aViewController in allViewControllers) {
if ([aViewController isKindOfClass:[YourStoryBoardName class]]) {
[self.navigationController popToViewController:aViewController animated:YES];
}
}
答案 3 :(得分:0)
参考此回答https://stackoverflow.com/a/11027116/3883040
。如果isKindOfClass
在导航堆栈中,您可以使用viewController
从导航堆栈弹出viewController
。
答案 4 :(得分:0)
试试这个 -
目前您在ThirdViewController中,并且说您的FirstViewController的类名是&#34; FVC&#34;。
NSArray *allViewControllers = [self.navigationController viewControllers];
for (UIViewController *aViewController in allViewControllers) {
if ([aViewController isKindOfClass:[FVC class]]) {
[self.navigationController popToViewController:aViewController animated:YES];
}
}
应该做的伎俩
正如操作想要解释一样,这是怎么回事。
在您的导航堆栈中,当前有 - VC1,VC2,VC3(您现在是@ VC3)。
接下来当你调用这个方法[self.navigationController popToViewController:vc1]
时,你的导航堆栈就有了VC1,当你从VC3弹出到VC1时,就会弹出所有的VC,从而释放你的记忆