我是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。为什么不起作用?

最佳答案

如果按钮的作用是segue,则只需执行“显示详细信息segue,您就完成了。

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

显示详细信息会自动清除导航堆栈。还有其他方法可以解决此问题,但我只是向您抛出一个可以接受的有效答案。阅读有关segues和自定义segues以及导航堆栈的更多信息,以深入了解。如果您想深入研究iPhone App开发人员,那是值得您花费时间的。

关于swift - Swift popToViewController不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39023004/

10-14 23:16