2016-06-21 47 views
0

我一直在使用XLPagerTabStrip在我的視圖控制器的頂部有效地創建一個標籤欄,其中顯示了多個子視圖控制器(來源:https://github.com/xmartlabs/XLPagerTabStripSwift:如何使用XLPagerTabStrip中的子視圖控制器回到第一個視圖控制器

讓我們調用這些子視圖控制器A1,B1和C1。在子視圖控制器內的是一旦點擊的表視圖繼續到新的視圖控制器(A2)。我希望能夠從A2返回到顯示子視圖控制器的第一個視圖控制器。我曾嘗試將導航欄添加到子視圖控制器並使用navigationController?.popToRootViewControllerAnimated(true)方法,但是當按下包含此代碼的按鈕時,不會發生任何情況。我也嘗試在母視圖控制器中嵌入導航控制器,但這也不起作用(不確定這是因爲子視圖控制器A1,B1和C1沒有連接到故事板內的母視圖控制器)。

任何幫助將不勝感激。

回答

1

好,所以我認爲有幾種方法可以解決這個問題。首先,答案取決於你使用的是什麼類型的segue。如果您在使用本模態,那麼所有你需要做的就是輸入

self.dismissViewControllerAnimated(true, completion: completion) 

否則請參閱下面的方法來Segue公司回A1ViewController。

第一個選項:

你可以在一個UINavigationController嵌入母親視圖控制器。這時母親視圖控制器將用於UINavigationController的根視圖控制器,你將能夠使用

navigationController?.popToRootViewControllerAnimated(true) 

第二個選項:

一個展開SEGUE。這些賽段非常適合倒退,並且可以分3步實施。

  1. 創建對象的用戶選擇回去(在你的情況,這將是 是UIButton的在A2)
  2. 創建要返回到控制器的開卷方法。 (在你的情況下,該方法將在控制器A1中)

    @IBAction func unwindToA1ViewController(segue: UIStoryboardSegue) 
    
  3. 掛鉤UIStoryboard中的方法。轉到A2場景並控制將A2ViewController拖動到Exit,然後選擇您在步驟2中創建的展開方法。(在A2 ViewController的頂部)

請參閱下面的進一步說明和優秀視覺效果! https://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2

希望這會有所幫助!

相關問題