Swift popToViewController 不工作

Swift popToViewController does not working

我是 Swift 和 iOS 开发人员的新手,但我认为我知道如何吃它。 我在尝试使用 popToViewController 时遇到问题。问题是我想在按下按钮时 "clear" UINavigation 堆栈。 所以我在这里这样做:

navigationController?.popToViewController((navigationController?.viewControllers[0])!, animated: false)

我想在堆栈中只有第一个 ViewController。 在我点击按钮之前堆栈包含

([<EmpMan.ViewController: 0x7fd191535ba0>,
 <EmpMan.TableViewController: 0x7fd191564be0>,
 <EmpMan.NewEmployee: 0x7fd1916c0320>])

当我点击按钮时,堆栈看起来:

([<EmpMan.ViewController: 0x7fd191535ba0>,
 <EmpMan.TableViewController: 0x7fd191564be0>,
 <EmpMan.NewEmployee: 0x7fd1916c0320>,
 <EmpMan.TableViewController: 0x7fd19171dbf0>])

我认为在 popToViewController 之后堆栈应该只包含 ViewController。为什么它不起作用?

如果按钮执行的是转场,则只需执行“显示详细信息转场即可完成。

否则,在 viewController 中创建一个布尔值,并在按下按钮时将按钮设置为 true。从控制器中的每个可能的 segue 路由中创建一个辅助 segue。然后,如果该布尔值设置为 true,请使用 "Show Detail Segue" 作为下一个 segue 而不是 "Show Segue".

显示详细信息会自动清除导航堆栈。还有其他处理方法,但我只是给你一个可以接受的有效答案。阅读更多关于 segues 和自定义 segues 以及导航堆栈的信息以获得透彻的理解。如果您想深入研究 iPhone 应用程序开发,那么值得花时间。