2016-08-18 54 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