【问题标题】:Swift: How to segue back to first view controller after using child view controllers from the XLPagerTabStripSwift:如何在使用 XLPagerTabStrip 中的子视图控制器后重新回到第一个视图控制器
【发布时间】:2016-10-22 23:07:35
【问题描述】:

我一直在使用 XLPagerTabStrip 在我的视图控制器顶部有效地创建一个标签栏,其中显示了多个子视图控制器(来源:https://github.com/xmartlabs/XLPagerTabStrip

让我们将这些子视图控制器称为 A1、B1 和 C1。在子视图控制器中是表格视图,它曾经被点击到新的视图控制器(A2)。我希望能够从 A2 返回到显示子视图控制器的第一个视图控制器。我尝试向两个子视图控制器添加导航栏并使用navigationController?.popToRootViewControllerAnimated(true) 方法,但是当按下包含此代码的按钮时,什么也没有发生。我也尝试在母视图控制器中嵌入导航控制器,但这也不起作用(不确定这是否是因为子视图控制器 A1、B1 和 C1 未连接到情节提要中的母视图控制器)。

任何帮助将不胜感激。

【问题讨论】:

    标签: ios swift uinavigationcontroller segue xlpagertabstrip


    【解决方案1】:

    好的,所以我认为有几种方法可以解决这个问题。首先,答案取决于您使用的 segue 类型。如果你正在使用现在的模态,那么你需要做的就是输入

    self.dismissViewControllerAnimated(true, completion: completion)
    

    否则,请参阅下面的方法来继续返回 A1ViewController。

    第一个选项:

    您可以将母视图控制器嵌入 UINavigationController。然后,母视图控制器将成为 UINavigationController 的根视图控制器,您将能够使用

    navigationController?.popToRootViewControllerAnimated(true)
    

    第二个选项:

    一个放松的转场。这些 segues 非常适合倒退,可以分 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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2014-05-05
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多