繁体   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