segueForUnwindingToViewController в iOS 9

У меня есть Custom Segue с контроллером представления, а затем соответствующий Custom Unwind Segue. Этот код отлично работал в iOS 8 и реализован путем создания подклассов UIStoryboardSegue и реализации метода execute. Затем я переопределяю следующий метод в своем пользовательском контроллере навигации.

func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String) -> UIStoryboardSegue {
    var segue: UIStoryboardSegue
    if (fromViewController is MyViewController.self) {
        segue = CustomSegue(identifier: identifier, source: fromViewController, destination: toViewController)
        //Custom Unwind Segue
    }
    else {
        var unwindSegue: UIStoryboardSegue = super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier)
        //Normal Unwind Segue
        segue = unwindSegue
    }
    return segue
}

В iOS 9 segueForUnwindingToViewController устарел. Он по-прежнему работает для MyViewController CustomSegue; однако этап раскрутки по умолчанию больше не работает ни для каких других переходов раскрутки. Несмотря на то, что вызов метода в super возвращает переход отката, переход никогда не происходит, контроллер представления никогда не выталкивается, и пользователь никогда не может вернуться к предыдущему экрану. Так что просто для ясности: если я использую обычный переход шоу, соответствующий переход раскрутки вызывает устаревший метод, который вызывает метод в super и не работает.


person Moin Shirazi    schedule 10.04.2016    source источник


Ответы (1)


Если контроллер B раскручивается до контроллера A, то в контроллере A:

  @IBAction func viewController-B-DidExit(segue: UIStoryboardSegue) {

        let controller = segue.sourceViewController as! viewController-B

  }

Затем в viewContoller B подключите объект, из которого вы хотите выйти, к выходу.

person Steve Rosenberg    schedule 10.04.2016