iOS, как определить программно, когда контроллер вид сверху выскочил?

Предположим, у меня есть стек контроллеров навигации с двумя контроллерами представления: VC2 находится сверху, а VC1 - снизу. Есть ли код, который я могу включить в VC1, который обнаружит, что VC2 только что был извлечен из стека?

Поскольку я пытаюсь обнаружить появление VC2 из кода для VC1, кажется, что-то вродеviewWillAppear или жеviewDidAppear не будет работать, потому что эти методы срабатывают каждый раз, когда отображается VC1, в том числе когда он впервые помещается в стек.

EDIT: кажется, мне не очень понятен мой первоначальный вопрос. Вот что я пытаюсь сделать: определить, когда показывается VC1 из-за того, что VC2 выскакивает с вершины стека. Вот что я НЕ пытаюсь сделать: определить, когда показывается VC1 из-за того, что он помещен на вершину стека. Мне нужен какой-то способ, который обнаружит первое действие, но НЕ второе действие.

Примечание: я не особенно беспокоюсь о VC2, это может быть любое количество других VC, которые извлекаются из стека, и меня волнует, когда VC1 снова становится вершиной стека из-за того, что некоторые другие VC начинают выталкивать из Топ.

Ответы на вопрос(10)

Ваш ответ на вопрос