当segueing到主页时,UIPageViewController堆叠ViewControllers

时间:2017-03-01 21:36:11

标签: ios swift uipageviewcontroller unwind-segue

我有两个故事板,一个主,然后是第二个故事板,其中包含一个UIPageViewController。在第二个故事板内,退出按钮允许用户返回主故事板上的主屏幕。

当我尝试切换回主屏幕时,页面控制器视图正在堆叠。我试过用:

self.navigationController?.popViewController

除了解除分配UIPageViewController集的其他一些方法之外。似乎什么都没有用?我该如何解决这个问题?

您可以在下图中看到控制器标有(3)的位置。

Memory Graph Image

以下是我的一些尝试。在用户通过是/否自定义模式确认后,我使用通知在根控制器上调用方法。

func attempt1() {
    self.viewControllerList.forEach {
        index in
        index.removeFromParentViewController()
        index.dismiss(animated: false, completion: nil)
        index.navigationController?.popViewController(animated: false)
    }
   self.performSegue(withIdentifier: "unwindHome", sender: self)
}

func attempt2() {
    self.childViewControllers.forEach {
        c in
        print("CHILD...>", c)
        c.removeFromParentViewController()
        c.dismiss(animated: false, completion: nil)
    }
}

func attempt3() {
    (view.window?.rootViewController as? UIPageViewController)?.dismiss(animated: true, completion: nil)
    self.dismiss(animated: false, completion: {
        self.viewControllerList.forEach {
            i in
            i.navigationController?.popViewController(animated: true)
        }
    })
   self.performSegue(withIdentifier: "unwindHome", sender: self)
}

1 个答案:

答案 0 :(得分:0)

以下是我的问题:

  • 在第一个故事板上,我的导航控制器未设置为初始状态。

    • 将其设置为初始值后,我将从主SB链接到第二个SB
  • 代表们没有设置为弱

  • RxSwift未被妥善处理。
    • 我最初是通过Variables作为Global来做pub / sub。当将观察者移动到我的UIPageViewController的根目录时,在页面分解时,观察者被处置掉,导致onComplete回调被击中。