自定义展开segue类在Swift中无法正常工作,为什么?

时间:2018-05-02 06:14:49

标签: ios swift

以下展开 segue类未将原始VC呈现为其原始状态并从左下方滑动 - > |并且在被隔离到二级VC后,按预期重新加载数据。

原始VC位于UITabBarController,底部的标签栏仍在显示,但屏幕的其余部分为空白。

问题:如何展开将初始segue还原为辅助屏幕?

class UnwindSegueFromRight: UIStoryboardSegue {

override func perform(){

    let src = self.source
    let dst = self.destination


    src.view.superview?.insertSubview(dst.view, at: 0)
    dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)

    UIView.animate(withDuration: 0.25,
                   delay: 0.0,
                   options: UIViewAnimationOptions.curveEaseInOut,
                   animations: {
                    dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
    },
                   completion: { finished in

                    src.dismiss(animated: false, completion: nil)
    })
}
}//end class

我有以下SegueFromRight课程,它完美无缺。但是我相应的解除上述情况不适用。

class SegueFromRight: UIStoryboardSegue {

override func perform(){

    let dst = self.destination
    let src = self.source


    src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)

    dst.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)

    UIView.animate(withDuration: 0.25,
                   delay: 0.0,
                   options: UIViewAnimationOptions.curveEaseInOut,
                   animations: {
                    dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
    },
                   completion: { finished in
                    src.present(dst, animated: false, completion: nil)
    })
}
}

0 个答案:

没有答案