我是Swift和iOS开发的新手,但我认为我知道如何使用它。我在尝试使用popToViewController时遇到问题。问题是我想在按下按钮时“清除”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。为什么它不起作用?
发布于 2016-08-19 00:49:24
如果按钮所做的是一个片段,那么只需执行"Show detail segue,你就完成了。
否则,使用按下按钮时设置为true的按钮在viewController中创建一个布尔值。在控制器之外的每个可能的分段路由中创建一个辅助分段。然后,如果该布尔值设置为true,则使用"Show Detail Segue“作为下一个段,而不是"Show Segue”。
显示详细信息自动清除导航堆栈。也有其他方法来处理这个问题,但我只是抛给你一个可以接受的有效答案。阅读有关segues和自定义segues以及导航堆栈的更多信息,以获得更深入的理解。如果您想深入了解iPhone应用程序开发,那么您的时间是值得的。
https://stackoverflow.com/questions/39023004
复制相似问题