2016-04-28 2 views
1

У меня есть UIViewController с кнопкой. Эта кнопка имеет сегмент, подключенный к другому контроллеру UIViewController, а segue имеет тип Show. Это выглядит как-то так:Как проверить, просматривался ли мой UIViewController, когда он появляется для пользователя в моем приложении Swift?

self.performSegueWithIdentifier("myIdentifier", sender: user) 

и функция prepareForSegue является:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier == "myIdentifier"){ 

     if let frD = segue.destinationViewController as? MyNextClass, 
     ... 

Теперь, когда пользователь нажимает на кнопку, новый UIViewController выскакивает на весь экран. Она также имеет кнопку под названием exitButton, что делает одна вещь:

@IBAction func exitbuttonaction(sender: AnyObject) { 

    self.dismissViewControllerAnimated(true, completion: nil) 
} 

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

Кроме того, есть ли другой способ отличия, когда родительский контроллер появился пользователю? (возможно, какая-то другая функция аналогична viewWillAppear, которая будет работать при отклонении второго контроллера)

ответ

1

Вы должны использовать UnwindSegue. UnwindSegue дает вам возможность «размотать» стек навигации и указать место назначения, куда нужно вернуться. Ваш viewWillAppear никогда не звонит снова, потому что уже появился.

Если вы хотите знать, что UnwindSegue, вы можете проверить этот ответ: stackoverflow anser

Если вы хотите знать, как сделать это, я рекомендую эти ссылки:

apple documentation about unwind segues

tutorial about unwind segues

youtube videotutorial

+0

Ссылки на внешние ресурсы en но, пожалуйста, добавьте контекст вокруг ссылки, чтобы у ваших коллег было некоторое представление о том, что это такое и почему оно есть. Всегда указывайте наиболее значимую часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме. – Paulw11