![](/img/trans.png)
[英]I have view controllers in a navigation controller hierarchy, but only want the navigation bar on the first view controller - how do I do this?
[英]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.