私は複数のビューベースのアプリケーションを持っています。問題は、1 つの UIViewController をプッシュすると (実際のデバイスでテストした場合のみ) デバイスが 1 秒か 2 秒間フリーズすることです。 UITextField とボタンが 1 つだけあります。これは、ビューが最初にプッシュされたときにのみ発生し、その後、ビューはスムーズにプッシュされます。
これを回避する方法についてのアイデアはありますか?
私は複数のビューベースのアプリケーションを持っています。問題は、1 つの UIViewController をプッシュすると (実際のデバイスでテストした場合のみ) デバイスが 1 秒か 2 秒間フリーズすることです。 UITextField とボタンが 1 つだけあります。これは、ビューが最初にプッシュされたときにのみ発生し、その後、ビューはスムーズにプッシュされます。
これを回避する方法についてのアイデアはありますか?
そのコントローラーを最初に押したときに何が起こっているかを調べるには、Instruments を使用する必要があります。
Intrument の CPU サンプラー ツールを使用して、記録を開始します。次に、アプリで必要なことをすべて実行して、コントローラーをプッシュします。おそらく、CPU 負荷グラフにスパイクが見られるでしょう。この時点でスタック トレースを調べて、何が起きているのか、なぜそんなに時間がかかるのかを調べることができます。
元のView Controllerを離れることに重きを置いているようです。
コントローラーをプッシュする正確なコード (プッシュに関するメソッド全体) を投稿できますか?
プッシュしているView Controllerとは別に、インスタンス化できるオブジェクトはありますか?以前にインスタンス化できますか? 「プリロード」オブジェクトは、より高速なビュー コントローラーのプッシュの外観を与えるのに役立ちます。