如何从第三个viewController

时间:2015-10-16 09:41:14

标签: ios objective-c

我从sencond viewController进入第三个viewController,但是我不想回到第二个viewController,我需要直接回到我的第一个viewController,我该如何实现呢。我的英文很差,希望你可以理解我的问题,thx

5 个答案:

答案 0 :(得分:0)

您可以使用导航方法。

 [[self navigationController ] popToRootViewControllerAnimated:YES];

或者你使用这个

popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

&安培;通过你想要弹出的控制器。

答案 1 :(得分:0)

有一种方法

- (NSArray<__kindofUIViewController *> * _Nullable)popToRootViewControllerAnimated:(BOOL)animated

您需要执行类似

的操作
[self.navigationController popToRootViewControllerAnimated:YES];

请参阅Apple文档:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instm/UINavigationController/popToRootViewControllerAnimated

答案 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,从而释放你的记忆