私は2つのView ControllerとNavigation Controllerを持っています。画面がクリックされると、第1のVCは第2のVCに続き、第1のVCに戻るための巻き戻し用の戻るボタンがある。Segueアニメーションが完全に機能していない
私はセグの縦型アニメーションが気に入らなかったので、いくつかの助けを借りてカスタムアニメーションを作成しました。
第1のVCは、右から左にスライドするアニメーションと大きく機能します。しかし、それが完了すると、2番目のVCは巻き戻したくない(2番目のVCは左から右に移動する必要があります)。 TestApp.HomeViewControllerに0x7fce2082b000:UINavigationControllerを提示しようとしています。ビューウィンドウ階層にない0x7fce20410030
私はこの警告..
警告を得ますか!
また、最初のVCセグからスクリプトを取得すると、適切なアニメーションで2番目のVCから巻き戻すことができます。
ここseguesためのコードです:右左アニメーション
右アニメーションlet dst = self.destination
let src = self.source
src.view.superview?.insertSubview(dst.view, at: 0)
UIView.animate(withDuration: 0.25, delay: 0.0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
src.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)
}, completion: { success in
src.dismiss(animated: false, completion: nil)
})
に左
let dst = self.destination
let src = self.source
let containerView = src.view.superview
dst.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)
containerView?.addSubview(dst.view)
UIView.animate(withDuration: 0.25, delay: 0.0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
}, completion: { success in
src.present(dst, animated: false, completion: nil)
})
へ
第一VC
@IBAction func performSegue(_ sender: Any) {
if shouldPerformSegue(withIdentifier: "segue", sender: Any?.self) {
performSegue(withIdentifier: "segue", sender: nil)
}
}
@IBAction func unwindToHomeView(segue: UIStoryboardSegue) {
}
override func unwind(for unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) {
let segue = SegueFromLeft(identifier: unwindSegue.identifier, source: unwindSegue.source, destination: unwindSegue.destination)
segue.perform()
}
すべてのヘルプは次のようになりは、大いに感謝するated。
..だから私はアニメーションを廃止しました。私のアニメーションの解決策はかなり簡単でした。ナビゲータの位置を切り替えるだけで、最初のビューコントローラとして持っていれば、このトリックができました。アニメーションの固定または問題のプッシュ。 –
私の解決策を落とすべきかどうかは分かりません。それは私の特定の質問に本当に役立つものではないからです。 –