1

4 つのタブを持つタブバー アプリケーションがあります。すべてのタブは、viewcontroller を含む nib をロードします。私の最初の nib には 2 つのビューがあります。最初のビュー (プレースホルダー) には、2 番目のビュー (view1) に切り替えて反転するボタンがあります (2 番目のビューが上にあるかどうかをブール値で確認します)。

-(IBAction)transitionFlip {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.5];  
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
    if (view1OnTop) {
        [view1 removeFromSuperview];
        view1OnTop = NO;
    }
    else {
        [placeholder addSubview:view1];
        view1OnTop = YES;
    }
    [UIView commitAnimations];
}

問題: ボタンをクリックすると正常に動作します。しかし、第 2 タブバーのニブはアニメーションの背景にあるのですか? Second-Tabbar をクリックして最初に戻ると、アニメーションの背景が白くなります (当然のことです)。

メイン Appdelegate では、コントローラーを 2 つだけ追加しました。

[window addSubview:navigationController.view];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

何か案は?

4

1 に答える 1

1

この問題は、navigationController.view と tabBarController.view の両方を UIWindow のサブビューとして追加したことが原因である可能性があります。このビュー階層の代わりに:

UIWindow -> [UITabBarController -> [ビュー、ビュー、...]、UINavigationController -> ビュー]

tabBarController のビューのみをウィンドウに追加して、タブごとに個別の UINavigationControllers を管理できるようにしてみてください。

UIWindow -> UITabBarController -> [UINavigationController -> ビュー、UINavigationController -> ビュー、...]

于 2010-02-15T04:30:33.057 に答える