1

プロジェクトにデフォルトで4つのタブがあります。最初のタブが選択されています。これはホームクラスです。ユーザーが任意のタブを選択して他のクラスに移動すると、ユーザーがアプリケーションにログインしている場合は、そのクラスに移動することを確認する必要があります。それ以外を選択すると、ログイン画面に移動します。

 if(appDelegate.sessionId==0)
            {

                Login *objLogin=[[[Login alloc] initWithNibName:@"Login" bundle:nil] autorelease];

                [self.navigationController pushViewController:objLogin animated:YES];

            }
            else 
            {
                CreatePoll *objLogin=[[[CreatePoll alloc] initWithNibName:@"CreatePoll" bundle:nil] autorelease];
                [self.navigationController pushViewController:objLogin animated:YES];

            }

}

ログイン画面に移動すると、タブバーが非表示になり、コードをデバッグすると、Create Pollクラスもバックグラウンドで呼び出されることがわかりました。このリンクをチェックして、非表示になっているが成功しないタブバーを表示します。過去3日間からこの問題に悩まされている私を助けてください。ログイン画面で私のタブバーを見ることができません。助けてください

4

1 に答える 1

1

このコードをviewWillAppear:メソッドに記述して、非表示および表示するだけですUITabBar

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[appDelegate.tabBarController.tabBar setHidden:NO];

アップデート:

これらのメソッドをAppDelegate.mファイルに投稿し、その時点でタブバーを表示および非表示にする場合は、AppDelegate オブジェクトを作成し、このメソッドを呼び出します

- (void) hideTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];

    for(UIView *view in tabbarcontroller.view.subviews) {
        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y, 320, 436)];
        }
    }
    [UIView commitAnimations];
}

- (void) showTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3]; 

    for(UIView *view in tabbarcontroller.view.subviews) {

        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];            
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, height)];
        }
    }    

    [UIView commitAnimations];
}
于 2012-11-27T10:15:09.390 に答える