0

rootviewController (UInavigation コントローラー) から新しい StatusViewController (プログラムで UITabbarViewController を作成しました) をプッシュします。今、ログアウトボタンをクリックしたいのですが、rootviewcontrollerをプッシュしますが、以下のコードを使用しました。rootviewcontrollerを正常にプッシュしますが、まだ下部にタブバーがあります。

rootviewcontroller を呼び出すこのコード:

    LoginTab *loginView = [[LoginTab alloc] init];
    [self.navigationController pushViewController:loginView animated:YES];
    [loginView release];

そして、このコードは StatusViewController で UItabbarcontroller を作成します:

self.tab=[[UITabBarController alloc]init];

UploadTab *uploadview=[[UploadTab alloc]initWithNibName:nil bundle:nil];
UINavigationController *uploadTabItem = [[[UINavigationController alloc] initWithRootViewController: uploadview] autorelease];
uploadview.title=@"Uploading";
uploadview.tabBarItem.image=[UIImage imageNamed:@"Uploading.png"];
self.title = @"FirstViewControllerTitle";

//SecondViewController
ConvertTab *convertView=[[ConvertTab alloc]initWithNibName:nil bundle:nil];
UINavigationController *convertTabItem = [[[UINavigationController alloc] initWithRootViewController: convertView] autorelease];
convertView.title=@"Convert";
convertView.tabBarItem.image=[UIImage imageNamed:@"Convert.png"];

//ThirdViewController
CompletedTab *completedView=[[CompletedTab alloc]initWithNibName:nil bundle:nil];
UINavigationController *completedTabItem = [[[UINavigationController alloc] initWithRootViewController: completedView] autorelease];
completedView.title=@"Completed";
completedView.tabBarItem.image=[UIImage imageNamed:@"Completed.png"];
UIBarButtonItem * LogoutItem= [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Logout.png"] style:UIBarButtonItemStylePlain target:self action:@selector(logout)];

self.navigationItem.rightBarButtonItem = LogoutItem;
self.tab.viewControllers=[NSArray arrayWithObjects:uploadTabItem,convertTabItem, completedTabItem, nil];

// [self.view insertSubview:self.tab.view belowSubview: uploadview.view];
[self presentModalViewController:self.tab animated:NO];

この画像を見ることができます: ここに画像の説明を入力

4

2 に答える 2

0

あなたの階層は正しくないようです。タブ バー コントローラーは、ルート ビュー コントローラーにする必要があります。タブごとに、プッシュおよびポップする独自のコントローラーを持つナビゲーション コントローラーを使用できます。とはいえ、タブ バー ベースのアプリを使用している場合に期待される動作であるため、タブ バーは常に表示されます。タブ バーを表示しないビューを表示する場合は、そのビュー コントローラーをモーダル ビュー コントローラーとしてタブ バー コントローラーの上に表示する必要があります。

于 2013-08-09T16:37:25.810 に答える