私はちょっと立ち往生した異常な動きに遭遇しました。問題は次のとおりです。ボタンをタップして初めてsegueのカスタムアニメーションが再生されない
起動画面として4つのスライドを表示するには、BWWalkthroughライブラリを使用しています。だから私のappdelegateに私はviewcontrollersを初期化し、次のコードを持っている:
let storyboard = UIStoryboard(name: "SlidesFlow", bundle: nil)
let walkthrough = storyboard.instantiateViewController(withIdentifier: "SlidesView") as! BWWalkthroughViewController
let page_zero = storyboard.instantiateViewController(withIdentifier: "page_1")
let page_one = storyboard.instantiateViewController(withIdentifier: "page_2")
let page_two = storyboard.instantiateViewController(withIdentifier: "page_3")
let page_three = storyboard.instantiateViewController(withIdentifier: "page_4")
walkthrough.delegate = self
walkthrough.addViewController(page_zero)
walkthrough.addViewController(page_one)
walkthrough.addViewController(page_two)
walkthrough.addViewController(page_three)
すべてが意図したとおりに動作しないので、ここでは何の問題。 ViewController page_threeに私はカスタムセグエアニメーション今
class sentSegueFromRight: UIStoryboardSegue {
override func perform()
{
let src = self.source as UIViewController
let dst = self.destination as UIViewController
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)
}
)
}
}
を使用して、他のビューコントローラに私をリダイレクトするボタンを持っている問題であり、私は通常のViewControllerのボタンやアニメーション作品なしに同じコードを使用している場合問題。問題は、私がBWWalkthroughの最後のスライドから上で定義したセグを使うときです。最初にボタンをタップすると、表示されるはずのビューコントロールが表示されますが、対応するアニメーションは表示されません。それを閉じると、アニメーションが再生されますが、エラーが返され、再びボタンをテーピングした後:私は、標準的なアニメーションとボタンを使用している場合
切り離さビューコントローラのビューコントローラを提示 は
を落胆さ(私のカスタムアニメーションコードを使用せずに)エラーはなく、デフォルトのアニメーションが再生されます。
私はこの問題を解決できないようです。誰かがこのようなことに遭遇しましたか?
この点を私に指摘していただきありがとうございます。それは理にかなっている。 – Netra