2016-11-07 66 views
0

下面的鏈接顯示了我的故事板,我認爲我的問題更容易理解圖像。 我的tabBarController管理嵌入在navigationController中的選項卡。 UIButton「開始」通過show segue(藍色箭頭)導致下一個視圖。在這個視圖上,一個酒吧按鈕項目通過show segue(綠色箭頭)再次導向最後一個viewController。從最後一個視圖控制器我想回到我的第一個視圖控制器,再次通過一個酒吧按鈕項目(黑色箭頭)。但現在問題出現了,我的初始視圖控制器在左上角顯示一個「後退按鈕」(當然,因爲通過黑色箭頭,初始視圖只是添加到導航堆棧中,對吧?!)。我通過回到標籤欄控制器(紅色箭頭)解決了這個問題。現在沒有「返回」按鈕了,但現在我想知道是否不像我的導航視圖堆棧仍然存在於後臺並浪費內存或類似的東西。我怎樣才能刪除這個堆棧,或者它甚至存在? (也許我完全錯了)還是有更好的方法回到我的第一個看法?刪除導航視圖的'堆棧'Xcode swift

對不起,我的問題不專業的描述,但我剛開始編碼,所以我沒有正確的話的一些問題呢。

非常感謝你!

my Storyboard looks like this

+0

使用開卷賽格瑞 – PeejWeej

回答

1

如果我理解正確的話,你希望你的最後一個視圖控制器導航到導航堆棧的初始視圖控制器。在您最後一次的視圖控制器,你可以添加到您的代碼:

 override func viewDidLoad() { 
    super.viewDidLoad() 
    //this will add a button to top right of the nav bar, 
    //change "ButtonName" to a title you want 
    //this button will call the blackArrow function 
    self.navigationItem.rightBarButtonItem = UIBarButtonItem (
     title: "ButtonName", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.blackArrow)) 
} 


func blackArrow() { 
//this function navigates to the initial view controller of the navigation controller 
if let navigationController = self.navigationController { 
    navigationController.popToRootViewController(animated: true) 

    } 
} 
+0

謝謝!我是否必須刪除視圖控制器的堆棧,或者如果我回到那個視圖控制器,是否僅將堆棧簡化爲根視圖控制器? –

+0

如果您需要它們,您不必刪除視圖控制器堆棧,並且它不會簡化爲只有根視圖控制器。導航控制器只顯示初始視圖,並且您可以導航連接到其的其他視圖控制器,如第一次,如藍色,然後是綠色箭頭。 –