2016-06-21 74 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

希望这会有所帮助!

相关问题