2017-05-03 9 views
1

私は小さな明確化が必要です、私は1つのviewcontrollerからボタンを押して2 UIViewControllersを持って、私は他に移動する必要があります。しかし、このようなものをこのように呼び出すと、このUIViewContollerによって内部的に取られた時間を知る必要があります。IOSのビューから別のビューにナビゲートするときのデフォルトの時間は何ですか

MyViewController *ins = [[MyViewController alloc]init]; 
[self.navigationController pushViewController:ins animated:YES]; 

は、私たちは皆知っている場合は、その「アニメーション」「YES」、それはいくつかの時間がかかるだろうと、私はその時間を必要とするか、その時間を計算に私を助けて。

+1

なぜ知る必要がありますか?私はそれについて何も仮定しません。 iOSアップデートで時間が変わる可能性があります。 – rmaddy

+0

私は100%確実ではありませんが、包含する関数が終了した後に*アニメーションをスケジュールすることができるケースがあると思います。だから、それをタイミングに頼ることはできません。一般に、厳密な暗黙のイベントシーケンスに依存するパターンは、iOSでは非常にエラーが発生しやすい。問題を解決する別の方法を見つけることをお勧めします。あなたは、バグを何かを辿るのが難しいでしょう! –

答えて

1

なぜこの質問を持っているが、私はこれを確認する小さなデモをしたわからない -

アニメーションなしで - 2017年5月3日11時07分35秒 -

はプッシュ前の時間枠をプリント。

プッシュ後の印刷時間枠 - 05/03/2017 11:07:35。アニメーションで

-

印刷された時間枠のプッシュの前に - 2017年5月3日11時09分42秒。

プッシュ後の印刷時間枠 - 05/03/2017 11:09:42。

@IBAction func buttonTapped(_ sender: Any) { 
    let bVC = AHBViewController() 
    bVC.view.backgroundColor = UIColor.blue 
    let startDate = Date() 
    print(dateFormatter.string(from: startDate)) 
    self.navigationController?.pushViewController(bVC, animated: true) 
    let endDate = Date() 
    print(dateFormatter.string(from: endDate)) 

} 
+0

ありがとう、私はあなたのタイムリーな答えに感謝します。タスクは、あるコントローラから他のコントローラへのナビゲーション中にかかる時間を短縮する可能性があるかどうかを確認する必要があります。 – Raghunathan

+0

例のように "9760 - 9680 = 80"ミリ秒は、移動に要した遅延または時間です。その80ミリ秒を70または60に減らす可能性をチェックする必要があります。 – Raghunathan

+0

よろしくお願いします。私はこれを最適化することはお勧めしませんが、これはココアタッチの基本的な機能であり、Appleはプッシュアクションのパフォーマンスを非常に真剣に冒頭から始めていると考えています。 – Aaron

関連する問題