簡體   English   中英

Swift:在XLPagerTabStrip中使用子視圖控制器后,如何選擇回到第一個視圖控制器

[英]Swift: How to segue back to first view controller after using child view controllers from the XLPagerTabStrip

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

讓我們將這些子視圖控制器稱為A1,B1和C1。 子視圖控制器內是表視圖,該表視圖一旦點擊即可連接到新的視圖控制器(A2)。 我希望能夠從A2返回到顯示子視圖控制器的第一個視圖控制器。 我嘗試將導航欄添加到子視圖控制器,並使用navigationController?.popToRootViewControllerAnimated(true)方法,但是當按下包含此代碼的按鈕時,什么也沒有發生。 我也嘗試將導航控制器嵌入到母視圖控制器中,但這也行不通(不確定這是否是因為子視圖控制器A1,B1和C1未連接到情節提要中的母視圖控制器)。

任何幫助將不勝感激。

好的,我認為您可以通過幾種方法解決此問題。 首先,答案取決於您所使用的segue類型。 如果您正在模態使用禮物,那么您只需輸入

self.dismissViewControllerAnimated(true, completion: completion)

否則,請參閱下面的內容以選擇回A1ViewController的方法。

第一種選擇:

您可以將Mother View Controller嵌入到UINavigationController中。 然后,Mother View Controller將成為UINavigationController的根視圖控制器,您將可以使用

navigationController?.popToRootViewControllerAnimated(true)

第二種選擇:

放松的賽格。 這些設置非常適合向后退,可以分3個步驟實施。

  1. 創建一個對象供用戶選擇以返回(在您的情況下,這將是A2中的UIButton)
  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

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM