2017-11-22 16 views
-1

は、私は、プログラムSearchVCDynamicVCからセグエを作ってるんだ:segueでアニメーションのhidesBackButtonコードを最適化する方法は?

@objc func goToSearchVC() { 

     let searcVC = SearchVC() 

     //Hide system navigation controller back button 
     searcVC.navigationItem.hidesBackButton = true 
     searcVC.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "closeBtn_20"), style: .plain, target: self, action: #selector(closeBtnTapped)) 
     searcVC.navigationItem.title = "" 

     navigationController?.pushViewController(searcVC, animated: true) 
     searcVC.view.backgroundColor = .lightGray 
    } 

hidesBackButtonは非常にゆっくりと実行し、 "戻る" ボタンがセグエアニメーションで点滅:

hidesBackButton executes very slowly

がどのように私はこの問題を解決することができますか?これを最適化することは可能ですか?ありがとう。

+0

をアニメーション 'navigationController .pushViewController(searcVCを、試してみてください:偽) '。これはあなたの問題を解決しますか? – Anushk

+0

いいえアニメーションを保持したいです。それは解決策ではありません。 – Rurom

+0

SearchVCの 'viewDidLoad'関数でナビゲーションバーを設定することをお勧めします。それをしたくない場合は、 'goToSearchVC'ではなく' viewWillDisappear(_ :) 'でカスタマイズしたsearchVCを初期化してみてください。 – Anushk

答えて

0

私はこのコードを使用して、 "戻る" ボタンを点滅して問題を解決した:

let transition:CATransition = CATransition() 
    transition.duration = 0.5 
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    transition.type = kCATransitionPush 
    transition.subtype = kCATransitionFromRight 
    self.navigationController!.view.layer.addAnimation(transition, forKey: kCATransition) 
    self.navigationController?.pushViewController(searchVC, animated: false) 

の使用のための移行の別の種類:?

kCATransitionFromLeft 

kCATransitionFromBottom 

kCATransitionFromRight 

kCATransitionFromTop 
関連する問題