2012-05-02 7 views
0

私はすべてのビューが自動回転するiPadアプリを構築しています。 1つのビューは私に頭痛を与えている。ipad app - ほとんどのビューは大丈夫です。 1つのビューは表示されません

私はアプリでルーチンを呼び出すことで、このビューに反転

...この質問の変異体は数回前に頼まれてきたが、私が働いて解決策を見つけることができないことを知っています。デリゲート。このルーチンのコードは次のとおり

- (void)flipToBack { 
    //NSLog(@"%s", __FUNCTION__); 

    DrawingViewController *drawView = [[DrawingViewController alloc] initWithNibName:@"Draw" bundle:nil]; 
    [self setDrawingViewController:drawView]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; 

    [self.window addSubview:[drawView view]]; 
    [UIView commitAnimations]; 

    // NSLog (@" FINISHED "); 
} 

これは、描画が行われるのUIViewのサブビュー、後者とのビューコントローラ(MVC)です。 mvcもサブビューも正しく回転していません。

私はMVCで回転を呼び出すために使用しているコードは次のとおりです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

MVCは、二つのツール・バー、上部と下部を持ち、これらはサイズを変更する必要があります。これらはまた、回転に関係なく上下に留まるべきです。

プロジェクト概要では、すべての方向がサポートされていることが示されていますが、これはアプリのためのものだと私は思っています。初期化。

私はmvcのすべてのストラットを持っています。

私はこのようなツールバーを構築しています:

UIInterfaceOrientation fieldOrient = [[UIApplication sharedApplication] statusBarOrientation]; 
    if ((fieldOrient == UIDeviceOrientationLandscapeLeft) || (fieldOrient == UIDeviceOrientationLandscapeRight)) { 
     CGRect frame = CGRectMake(0, 50, 1024, 35); 
     topToolbar.frame = frame; 
    } else { 
     CGRect frame = CGRectMake(0, 50, 768, 35); 
     topToolbar.frame = frame; 


UIInterfaceOrientation fieldOrient = [[UIApplication sharedApplication] statusBarOrientation]; 
    if ((fieldOrient == UIDeviceOrientationLandscapeLeft) || (fieldOrient == UIDeviceOrientationLandscapeRight)) { 
     CGRect frame = CGRectMake(0, 650, 1024, 35); 
     bottomToolbar.frame = frame; 
    } else { 
     CGRect frame = CGRectMake(0, 950, 768, 35); 
     bottomToolbar.frame = frame; 

私は何かを明らかに欠けていると思います...すべてのヘルプ/ポインタをいただければ幸いです。

答えて

0

私のための答えは、モーダルビューとしてビューを提示することでした。それは理想的ではありませんが、機能します。

1

オリエンテーション方式のインタフェースに回転してフレームを設定してみてください:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

    if ((toInterfaceOrientation == UIDeviceOrientationLandscapeLeft) || (toInterfaceOrientation == UIDeviceOrientationLandscapeRight)) { 
     CGRect frame = CGRectMake(0, 650, 1024, 35); 
     bottomToolbar.frame = frame; 
    } else { 
     CGRect frame = CGRectMake(0, 950, 768, 35); 
     bottomToolbar.frame = frame; 
} 
+0

また、ツールバーの作成時に自動サイズ変更マスクを設定することもできます。 – scord

+0

私はお詫びしますが、私は質問にさらに答えを変える可能性のあるコードを追加しました。 –

+0

私はあなたのソリューションを試しましたが、喜びはありませんでした。 –

関連する問題