2011-04-08 126 views
1

嗨 在我的應用程序中我使用TabBar.At第一次當我打電話loginControl,我隱藏標籤欄使用[login hidesBottomBarWhenPushed=YES];現在如果登錄是成功的,然後我顯示detailViewController,但我沒有看到TabBar後,甚至將hidesBottomBarWhenPushed設置爲NO
有什麼問題...任何人可以幫助我?底部tabBar隱藏

+0

給我們一些代碼,它可能是你在tabBarController頂部推動你的detailView。 – 2011-04-08 07:19:29

回答

0

如果你不再需要你的登錄視圖控制器,你可以在推秒之前彈出它。這將完成這項工作,但在後退按鈕中會出現奇怪的動畫。它仍然是一個解決方案:)

[navController popViewControllerAnimated:NO]; 

編輯:

試試這個....

loginSuccessController *login = [[loginSuccessController alloc] initWithNibName:@"loginSuccessController" bundle:nil]; 
[self.navigationController popViewControllerAnimated:NO]; 
[self.navigationController pushViewController:login animated:YES]; 
+0

這是我的代碼當控制器顯示登錄頁面... – Hiren 2011-04-08 08:48:50

+0

我已編輯我的帖子。 – Jorge 2011-04-08 09:13:55

+0

嗨喬治,這是不可能的,因爲popViewControlerAnimated調用第一..所以沒有影響pushViewController ... – Hiren 2011-04-09 04:59:55

0

可以嘗試[self setHidesBottomBarWhenPushed:NO];在loginsuccesscontroller的viewWillAppear中或viewDidLoad中

+0

是的,我嘗試但沒有影響 – Hiren 2011-04-09 05:00:27

2

使用此方法隱藏並顯示tabbar :)

-(void)makeTabBarHidden:(BOOL)hide 
{ 

    UITabBarController *tabBarController = self.tabBarController; 

    if (hide == tabBarController.tabBar.hidden) { 
     return; 
    } 


    UIView *contentView; 

    if ([[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]) { 
     contentView = [tabBarController.view.subviews objectAtIndex:1]; 
    } else { 
     contentView = [tabBarController.view.subviews objectAtIndex:0]; 
    } 

    if (hide) { 
     contentView.frame = tabBarController.view.bounds; 
    } 
    else { 
     contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x, 
             tabBarController.view.bounds.origin.y, 
             tabBarController.view.bounds.size.width, 
             tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height); 
    } 

    tabBarController.tabBar.hidden = hide; 
}