2012-01-27 8 views
0

私はスプラッシュ画面(Default.png)で開くアプリケーションを持っていて、最初のビュー(ViewController1)をナビゲーションコントローラにロードします。すぐに、ViewController2(VC2)のインスタンスが作成され、ナビゲーションコントローラにプッシュされます。別のビューコントローラからビューコントローラをロードしているときにスプラッシュ画面を表示

[self.navigationController pushViewController:VC2 animated:NO]; 

私はアプリを実行するときに、デフォルトの画像が表示され、その後、ViewController1のビューが簡単にViewController2まで表示されますロードされて表示されます。

ViewController1の簡単な表示を停止するにはどうすればよいですか? VC2が表示されるまでDefault.pngの表示を拡張するか、VC2が表示されるまでViewController1をDefault.pngイメージでカバーできますか?

ありがとうございます。

+0

なしVC2を押し、次にself.view.hidden = YES;を行うことができ、あなたのVC1のviewDidLoad方法では、VC1を示すことなく、VC2を表示する場合ウィンドウaddSubview:splashImage];コードを実行する直前[self.navigationController pushViewController:VC2 animated:YES]; VC2のビューで削除します.DiDAppear – samfisher

答えて

0

VC1にDefault.pngでUIImageViewを追加してから、viewDidDisappear:で削除できます。

+0

UIImageViewをVC1(上端)に配置すると、エラー(SIGABRT)が表示されます.VC2はVC1の上面図にあると思われるデータにVC2がアクセスするためです。これをプログラムで修正する方法はありますか? –

+0

'UIImageView'を後ろに置き、他のビューのアルファ値を0に設定してから、すべてのアルファ値を' viewDidDisapear 'で1に変更します: '' –

-1

Default.pngの動作を変更することはできません。 ViewController1でUIImageViewをDefault.pngで作成することをお勧めします。それは画面とまったく同じサイズを与え、それを完全にカバーするサブビューとして追加します。そうすれば、Deafult.pngが2回表示された後にViewController2に移動します。

1

あなたの場合は、アドホックスプラッシュ画面としてVC1をVC1に設定することをお勧めします。 default.png画像は、アプリの外観を反映させて、アプリが起動しているような印象を与え、表示されるよりも速く動作する方法です。 (これはApple's HIGから取られました)

VC1を新しいスプラッシュスクリーン/読み込み画面にすることをお勧めします。単純な待機ページや読み込みページにしてから、アプリケーション内のすべてが処理されたらVC2を読み込むことができます。 Default.pngは読み込み画面のイメージになり、アプリがすぐに読み込んでいるような印象を与えます。

この問題にアプローチする方法については、多くの意見があります。どの方法があなたとあなたのアプリケーションに最適なのかを最終的に決める必要があります。

最後に、VC2に直接ロードし、ロードの進行状況を表示することができます。私は、情報をロードしたり、待つ必要のあるタスクを実行している間に、ユーザをロックするためにMBProgressHUDを使用しました。これは別のオプションかもしれません。この情報が役立つことを願っています。

2

あなたがしたい唯一のことは、あなたが[上のスプラッシュ画像とUIImageViewを追加することができ、アニメーション

関連する問題