检测到后退被按下以进入当前视图控制器

时间:2014-08-22 15:38:58

标签: ios swift

我使用导航控制器使用下面的代码从一个视图返回到上一个视图。

ChildViewController.swift:

self.navigationController.popViewControllerAnimated(true)

我需要一种方法来检测导航控制器是否转到了实际上一个视图中的上一个视图,如下所示。

ParentViewController.swift:

func backWasPressed(viewControllerIdentifier: String!) {
    // if back was pressed from this view controller and not from any other view
    if viewControllerIdentifier == "ChildViewController" {
            // do stuff here
    }
}

有没有这样做?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

你不需要知道这一点。你可能认为你这样做,但你不是。整个提议的架构是似是而非:

func backWasPressed(viewControllerIdentifier: String!) {
    // if back was pressed from this view controller and not from any other view
    if viewControllerIdentifier == "ChildViewController" {
            // do stuff here
    }
}

如果推送的视图控制器有一些信息要与堆栈中的视图控制器进行通信,那么当弹出视图控制器时,这就是推送视图控制器的工作。它知道它正在弹出,它知道如何访问另一个视图控制器(如果对此有任何疑问,你可以使用委托架构),因此问题以这种方式得到妥善解决。它与呈现的视图控制器在解雇时需要与其演示者进行通信时完全相同。