gpt4 book ai didi

ios - 如何从上次导航的 VC 返回到第一个 VC

转载 作者:行者123 更新时间:2023-11-30 14:18:52 28 4
gpt4 key购买 nike

我仅使用 segue 在我的应用程序中导航。

我只是想知道,如果我从 1st-VC 导航到 V2,再到 V3,然后再到 4th-VC,如何直接从 4th-VC 导航回 1st VC,而不返回到 V3、V2,然后 VC1?

谢谢。

在我当前的应用程序中,我使用它导航回上一个 VC(使用展开):

@IBAction func unwindToViewController (sender: UIStoryboardSegue){

}

这是好的做法吗?

最佳答案

我知道三种选择:

第一个(可能也是最好的)是使用展开转场。他们详细解释了here (SO question)

第二个,如果您的 VC1 是 Root View Controller ,则只需在 VC4 中使用这一行:

self.navigationController?.popToRootViewControllerAnimated(true);

最后一个是手动将 ViewControllers 堆栈设置为您想要的状态(注意,您将以某种方式获取对 VC 的引用)。例如,“返回三个 VC”(抱歉,自动完成功能在 Swift 的 Xcode 中突然崩溃,因此仅限 Objective-C):

UINavigationController *navigationController = self.navigationController;
NSMutableArray *newVCs = [navigationController.viewControllers mutableCopy];

//This part would be more elegant in Swift, of course
[newVCs removeLastObject];
[newVCs removeLastObject];
[newVCs removeLastObject];

[navigationController setViewControllers:newVCs animated:YES];

第一个解决方案是最好的,因为它最灵活。而且它不会让您对 VC 堆栈进行硬编码。但这实际上取决于您的要求。第二个是迄今为止最容易实现的,因此如果您需要返回到根 VC,这是可行的方法。至于第三个,它比第一个更容易实现,但我认为第一个是最正确的。

关于ios - 如何从上次导航的 VC 返回到第一个 VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30750430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com