2016-08-18 55 views
0

我是Swift和iOS开发新手,但我认为我知道如何吃它。 我尝试使用popToViewController时遇到问题。问题是我想在按下按钮时“清除”UINavigation堆栈。 所以我做了这个喜欢这里:Swift popToViewController无法正常工作

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

+1

'popToRootViewControllerAnimated'如何? –

+0

没有测试,但后来在其他功能我想使用相同的,没有去堆栈的地面,但例如在堆栈中的第二个位置。 – maxeppc

+0

popToRootViewControllerAnimated正常工作。但是如果我想要在筹码中获得第二名的话。 – maxeppc

回答

0

如果什么按钮的功能是SEGUE,不仅仅是做“显示详细赛格瑞和你做。

否则,让一个布尔值在的viewController与当你按下它被设置为true的按钮按钮,从每个可能的segue路由中创建一个二级segue,然后如果该布尔值设置为true,则使用“Show Detail Segue”作为下一个Segue,而不是“Show Segue”

显示详细信息会自动清除导航堆栈,还有其他方法可以处理这个问题,但我只是抛出一个可以接受的答案,阅读更多关于segues和自定义segues以及导航堆栈以获取一个彻头彻尾的理解。如果你想沉迷于iPhone App开发,这是值得你花时间的。

+0

这就是我要找的。按照您的建议,我只是将Push从推送到显示详细信息,现在按预期工作。 谢谢! :) – maxeppc