- を使用
UINib
して、XIB をメモリにプリロードできます。
XIB のオブジェクト ツリーをメモリにプリデコードしますが、XIB 内のオブジェクトをインスタンス化しません。次に、 のinstantiate
メソッドを呼び出してUINib
、ビューをインスタンス化できます。
- getter メソッドを呼び出して の を強制的にロードする
view
こともできます(ビューは遅延ロードされるため、最初にアクセスしたときに XIB からロードされます)。UIViewController
view
ただし、UI オブジェクトは (XIB から) メイン スレッドでしかインスタンス化できないため (すべての UI コンポーネントと UI アクションはメイン スレッドで実行する必要があるため)、アプリはまだ「フリーズ」(メイン スレッドをブロック) します。ビューをロードします。たとえば、XIB のルート UIView を別のスレッドまたはキューにロードすることはできません (それを試みると、実行時例外が発生します)。
Instrumentsとその「Time Profiler」ツールを使用して、XIBファイルの読み込みプロセスに時間がかかる場所を正確に確認してください。(解決するのは簡単かもしれませんし、ビューが表示された後にのみ遅延ロードできるコンポーネントがあるかもしれません。)