2016-11-28 87 views
0

这是我的视图控制器是如何在故事板结构:如何清除导航堆栈,以便不出现后退按钮?

navController1 -> viewController1 -> viewController2 -> viewController3 

我从viewController3viewController1一个SEGUE。所以,当用户转换到viewContoller1时,后退按钮显示在导航栏上(如预期的那样)。不过,就我而言,我不希望用户回到viewController3,从viewController1。我想再次从viewController1重新开始。在过渡到viewController1之后有没有办法清除堆栈,这样后面的按钮不会出现?

(注意navController1不是我的根控制器,我以前也有一些其他的控制器。)

回答

0

你有navigationController成员。它实际上是一堆推入式控制器。清除堆栈,你应该得到你想要的结果。要做到这一点,在上一个View Controller的navigationController?.viewControllers中设置一个空列表。希望这会帮助你找到解决方案。

+0

还有其他时候我需要后退按钮来显示在视图controller1上。只有当我从viewcontroller3旅行时,我现在想要后退按钮。那么我可以在viewcontroller3的prepareForSegue方法中应用你的代码吗? – Prabhu

+0

当您在视图控制器中时,您可以随意修改堆栈。堆栈可以清空,但也可以修改(例如,如果你有4个视图控制器,你可以删除其中的2个)。如果你需要更复杂的情况,你应该从我的提示开始尝试。请记住,您还有两个导航控制器右侧和左侧按钮的列表。您也可以从这些列表中添加和删除按钮。 – Sergiob

+0

谢谢。我怎么能告诉viewController1,我来自viewController3?对不起,我对Swift很陌生。 – Prabhu