2009-06-28 8 views
1

私のアプリは3つのビューで構成されています。私はネクタイ、ユーザーが別のビューに切り替えたい場合はビューの切り替え時に正しく描画されないビュー

-(IBAction)goToView1 { 
    if (view1 == nil) 
    { 
     View1 *thisView = [[View1 alloc] initWithNibName:@"View1" bundle:nil]; 
     view1 = thisView; 
    } 

    for (UIView *view in window.subviews) 
     [view removeFromSuperview]; 

    [window addSubview:view1.view]; 
} 

:私はこのように見えた、(各ビューは、他のを呼び出すことができるように)それぞれのビューを切り替えるにはAppDelegateで3つのヘルパーメソッドを定義しましたビューのコントローラで定義されてIBActionへボタン:

-(IBAction)goToOtherView:(id)sender { 
    ViewSwitcherAppDelegate *root = [[UIApplication sharedApplication] delegate]; 
    [root goToView1]; 
} 

これはすべてのビューを切り替えるために正常に動作しますが、ビューが描画されるときには、ステータスバーを無視しているように、それは、間違って表示されている:

alt text http://lh4.ggpht.com/_nbwj7pSrW10/SkcGEZ3XH0I/AAAAAAAABMs/nAkkja27e8I/s576/ViewSwitchingProblem.png

私は間違っていますか?

アプリの起動時に問題なくレンダリングされるので、ウィンドウにサブビューを追加する方法に何か問題があると思われます。

ありがとうございます!

+0

ビューのフレームプロパティを設定していますか?もしそうなら、私たちにコードを教えてもらえますか? – diederikh

+0

私が知っているわけではありません。ビューはデフォルトを使用して作成されました。 (SDK 3.0を使用して)同じ動作を示すサンプルプロジェクトは次のとおりです。 http://files.getdropbox.com/u/361159/ViewSwitcher.zip –

答えて

1

ビューのコントローラを使用して表示していないので、ビューのフレームを自分で調整する必要があります。ステータスバーのスペースを考慮するには、その起点を{0、20}に設定する必要があります。

しかし、あなたはUIViewControllerを使い、これをUINavigationControllerにプッシュする方がよいでしょう。 See the docs.

+0

ありがとうございます - 私はあなたのアドバイスを受け取り、デザインをリファクタリングしました代わりにUINavigationControllerを使用してください。 –

関連する問題