iOS 9中的segueForUnwindingToViewController

时间:2016-04-10 04:05:11

标签: swift ios9 unwind-segue

我有一个自定义Segue展示一个视图控制器,然后有一个相应的自定义展开Segue。此代码在iOS 8中运行良好,并通过生成UIStoryboardSegue的子类并实现perform方法来实现。然后我在自定义导航控制器

中覆盖以下方法
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;但是,默认的展开segue不再适用于任何其他展开segue。虽然在super上调用方法会返回一个展开segue,但segue永远不会发生,视图控制器永远不会弹出,并且用户永远不会返回到前一个屏幕。所以要清楚一点,如果我使用常规show segue,相应的unwind segue会调用不推荐使用的方法,该方法在super上调用方法,并且不起作用。

0 个答案:

没有答案