繁体   English   中英

如何处理导航后退按钮视图层次结构?

[英]How do i handle navigation Back button view hierarchy?

这是问题所在

1)Rootview控制器 - MYAssetVC->嵌入了NavigationController,此处将按钮推送到另一个Addfilevc。

2)Addfilevc具有dropdownTextfield它将推送到另一个vc有tableview选中的行将显示在textfield中。

3)如果我从下拉文本字段中选择另一个值,它将再次推送到vc,我将选择。

导航栏后退按钮将导航到我想要处理此视图的所有视图层次结构。 如果我去相同的视图,它应该只返回一次到最近的访问如何做到这一点。

因为我是iOS新手。 提出任何建议。

从1-> 2-> 3导航

导航backbtn 3-> 2-> 1

如果我像这样导航1-> 2-> 3->后退3-> 2再次2-> 3后退3-> 2再次2-> 3

如果我现在使用返回导航它显示我应该导航的所有路径路径,如1-> 2-> 3>和3-> 2-> 1,如果有任何次数我在2和3中执行操作。

1,2,3是视图控制器。

为后退按钮创建一个IBAction并使用popViewController。

[self.navigationController popViewControllerAnimated:YES];

这将帮助您返回一页。 你必须在有后退按钮的所有页面中写这个,并且你想要返回一页。

如果要直接返回rootViewController,请尝试以下操作:

[self.navigationController popToRootViewControllerAnimated:YES];

如果你想弹出到堆栈中的任何特定viewController,你运行for循环来找到你要导航到的viewController,然后简单地popToViewController,如下所示:

for (UIViewController *viewController in self.navigationController.viewControllers) {
    if ([viewController isKindOfClass:[Addfilevc class]]) {
        [self.navigationController popToViewController:viewController animated:YES];
    }
}

希望这有助于清除您的概念。

编辑

在快速:

  • [self.navigationController popViewControllerAnimated:YES]; 将成为self.navigationController?.popViewControllerAnimated(true)

  • [self.navigationController popToRootViewControllerAnimated:YES]; 将成为navigationController?.popToRootViewControllerAnimated(true)

  • for循环如下:

如果您使用的是故事板,则可以使用此选项

let switchViewController = self.storyboard?.instantiateViewControllerWithIdentifier("view2") as ComposeViewController

self.navigationController?.pushViewController(switchViewController, animated: true)

和for-in循环

if let viewControllers = self.navigationController?.viewControllers {
    for viewController in viewControllers {
        self.navigationController!.popToViewController(viewController, animated: true);
    } 
}

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM