这是问题
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>如果有任何次数我在2& 2中执行动作,则3-> 2-> 1。 3。
1,2,3是视图控制器。
答案 0 :(得分:1)
为后退按钮创建一个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];
}
}
希望这有助于清除您的概念。
修改强>
在swift:
[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);
}
}
感谢。